在表达式x+ y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确

题目

在表达式x+ y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是( )。

A.operator+有两个参数,operator*有两个参数

B.operator+有两个参数,operator*有一个参数

C.operator+有一个参数,operator*有两个参数

D.operator+有一个参数,operator*有一个参数

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于运算符重载的叙述中,正确的是

A.运算符重载为成员函数时,若参数表中无参数,则重载的是一元运算符

B.一元运算符只能作为成员函数重载

C.二元运算符重载为非成员函数时,参数表中有一个参数

D.C++中可以重载所有的运算符


正确答案:C
解析:C++进行运算符重载时,“.”、“::”、“*”、“sizeof”等运算符不能重载,单目运算符和双目运算符既可以作为成员函数重载,也可以作为友元函数重载。

第2题:

下列关于运算符重载的叙述中,错误的是

A.::运算符不能重载

B.类型转换运算符只能作为成员函数重载

C.将运算符作为非成员函数重载时必须定义为友元

D.重载[ ]运算符应完成“下标访问”操作


正确答案:C
解析: C是错误的,其余为规定。

第3题:

在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。

A、作为友元函数重载的1元运算符

B、作为成员函数重载的1元运算符

C、作为友元函数重载的2元运算符

D、作为成员函数重载的2元运算符


参考答案:B

第4题:

如果表达式y*x+十中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为

A.x.operator++(0).operator *(y);

B.operator * (x.operator++(0),y);

C.y.operator * (operator++(x,0))

D.operator * (operator++(x,0),y)


正确答案:C
解析:本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator十(c1,c2)与c1+c2含义相同。同理,运算符*作为成员函数重载,则广(x++)与y.operator*(x++)含义相同,后缀什作为友元函数重载,那么x++与operator++(x,0)含义相同,所以选项C是正确的。

第5题:

如果表达式x=y*z中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为【 】。


正确答案:x=y.operator*(z)
x=y.operator*(z)

第6题:

运算符函数调用格式的表达式:y/x++与表达式:y. operator/(operator++(x,0))含义相同,由此可看出()。

A.“/”和“++”都是作为成员函数重载的

B.“/”和“++”都是作为非成员函数重载的

C.“/”是作为成员函数重载的,“++”是作为非成员函数重载的

D.“/”是作为非成员函数重载的,“++”都是作为成员函数重载的


正确答案:C
解析:本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2含义相同。所以通过题目给出的两个表达式可看出“/”是作为成员函数重载的,“++”是作为非成员函数重载的。

第7题:

下列关于运算符重载的叙述中,错误的是( )。

A.有的运算符可以作为非成员函数重载

B.所有的运算符都可以通过重载而被赋予新的含义

C.不得为重载的运算符函数的参数设置默认值

D.有的运算符只能作为成员函数重载


正确答案:B
重载运算符的规则如卜.:①c++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载:②c++不能重载的运算符只有5个;③莺载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤霞载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用.至少应有一个是类对象,即不允许参数全部是c++的标准类型。所以答案为B。

第8题:

运算符函数调用格式的表达式:y/x++与表达式:y.operator/(operator++(x,O))含义相同,由此可看出()。

A.“/”和“++”都是作为成员函数重载的

B.“/”和“++”都是作为非成员函数重载的

C.“/”是作为成员函数重载的,“++”是作为非成员函数重载的

D.“/”是作为非成员函数重载的,“++”都是作为成员函数重载的


正确答案:C
解析:本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2含义相同。所以通过题目给出的两个表达式可看出“/”是作为成员函数重载的,“++”是作为非成员函数重载的。

第9题:

运算符函数调用格式的表达式y/x++与表达式y.operator/(operator++(x,0))的含义相同,由此可看出( )。

A.“/”和“++”都是作为成员函数重载的

B.“/”和“++”都是作为非成员函数重载的

C.“/”是作为成员函数重载的,“++”是作为非成员函数重载的

D.“/”是作为非成员函数重载的,“++”都是作为成员函数重载的


正确答案:C
解析:运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即y.operator*(z)或者operator*(y,z);另一种是通过运算符构成表达式,即y*z。因为“++”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀“抖”时必须多一个虚拟参数int。

第10题:

在表达式x+y*2中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符,则operator+和operator*分别有多少个参数?

A.1 1

B.1 2

C.2 1

D.2 2


C 解析:“/”是一个二元运算符,作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以this指针的形式隐藏在形参表中。本题中,y为第一操作数,x为第二操作数,故正确答案为C。