在C++中,如果在类中重载了函数调用运算符(),那么重载函数调用的一般形式为:()A、(表达式)对象B、(表达式表)对象C、对象(表达式)D、对象(表达式表)

题目

在C++中,如果在类中重载了函数调用运算符(),那么重载函数调用的一般形式为:()

  • A、(表达式)对象
  • B、(表达式表)对象
  • C、对象(表达式)
  • D、对象(表达式表)
参考答案和解析
正确答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 24 )己知表达式 ++a 中的 "++" 是作为成员函数重载的运算符,则与十 +a 等效的运算符函数调用形为

A ) a .orerator++ ( 1 )

B ) operator++ ( a )

C ) operator++ ( a , l )

D ) a.operator++ ( )


正确答案:D

第2题:

如果表达式一x/y中的″-″和″″是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为()。

A.jsj-ej-0253.jpg

B.jsj-ej-0254.jpg

C.jsj-ej-0255.jpg

D.jsj-ej-0256.jpg


正确答案:B
本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且cl、c2都是该类的对象,则cl.operator+(c2)与cl+c2含义相同。如果十作为该类的非成员函数重载,则operator+(cl,c2)与cl+c2含义相同。同理,运算符″″作为友元函数重载,则--x)y与表达式operator/((--x),y)相同。前缀运算符″一一″作为友元函数重载,则--x与operator--(x)相同,所以组合起来是operator/(operator-(x),y);,即B选项。

第3题:

表达式中的运算对象可以是常数、变量和函数调用。()

此题为判断题(对,错)。


参考答案:正确

第4题:

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

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

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

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

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


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

第5题:

如果表达式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含义相同。同理,运算符*作为成员函数重载,则y*(x++)与 y.operator*(x++)含义相同,后缀++作为友元函数重载,那么x++与operator++(x,0)含义相同,所以选项 C是正确的。

第6题:

( 14 )下列有关运算符函数的描述中,错误的是

A )运算符函数的名称总是以 operator 为前缀

B )运算符函数的参数可以是对象

C )运算符函数只能定义为类的成员函数

D )在表达式中使用重载的运算符相当于调用运算符重载函数


正确答案:C

第7题:

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

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

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

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

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


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

第8题:

在表达式x-y中,“_”是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“_”,这个表达式还可表示为

A.x.operator-(y)

B.operator-(y,x)

C.y.operator-(x)

D.operator-(x,y)


正确答案:D

第9题:

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


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

第10题:

已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为

A.a.operator++(1)

B.operator++(A)

C.operator++(a,1)

D.a.operator++()


正确答案:D
解析:在类内部定义重载“++”运算符,函数格式为:类名&operator++( )。因此调用该函数的格式应该为:a.operator++( )。

更多相关问题