在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成

题目

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

  • A、operator+有两个参数,operator*有两个参数
  • B、operator+有两个参数,operator*有一个参数
  • C、operator+有一个参数,operator*有两个参数
  • D、operator+有一个参数,operator*有一个参数
参考答案和解析
正确答案:C
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.x.operator-(y)

B.operator-(y,x)

C.y.operator-(x)

D.operator-(x,y)


正确答案:D

第2题:

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

A ) :: 运算符不能重载

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

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

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


正确答案:C

第3题:

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

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

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

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

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


正确答案:B
解析:此题考查的是运算符的重载。C++中运算符重载是多态性的一种表现,在C++语言中,“.”、“.*”、“->”、“::”、“?:”这5个运算符不能重载,所以选项B)错误。由于很多符号是一元运算符和二元运算符公用的,为了避免含混,不得为重载的运算符函数设置默认值,调用时也就不得省略实参。其中“=”、“[]”、“->”及所有的类型转换运算符只能作为成员函数重载:如果允许第一操作数不是同类对象,而是其他数据类型,则只能作为非成员函数重载。

第4题:

将x+y*z中的“+”用成员函数重载,“*”是友元函数重载应写为( )。 A.operator+(operator*(y,z))SX

将x+y*z中的“+”用成员函数重载,“*”是友元函数重载应写为( )。

A.operator+(operator*(y,z))

B.x.operator+(operator*(y,z))

C.x.operator+(X*(y,z))

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


正确答案:B
B。【解析】在定义了重载运算符后的函数后,函数operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用friend对该函数进行声明,此函数就称为本类的友元函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,X.operator+。所以“x+y*z”被改写为“x.operator+(operator*(y,z))”。

第5题:

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


正确答案:x=y.operator*(z)或x=y.operator*(z)
x=y.operator*(z)或x=y.operator*(z) 解析:运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即y.operator*(z)或者operator*(y,z);另一种是通过运算符构成表达式,即y*z。

第6题:

( 24 )下列关于运算符重载的描述中,正确的是

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

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

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

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


正确答案:A

第7题:

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

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

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

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

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


参考答案:B

第8题:

如果表达式a>=b中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为( )。

A.a.operator>=(b)

B.b.operatotr>=(a)

C.operator>=(a,b)

D.operator>=(b,a)


正确答案:C
解析:此题考查的是运算符的重载。运算符函数有两种调用形式:第一种是直接用函数名进行调用:另一种是通过运算符构成表达式的形式进行调用。

第9题:

作为非成员函数重载的运算符,所有操作数都必须以 ______ 的形式出现在参数表中。


正确答案:参数
参数

第10题:

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

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

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

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

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


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

更多相关问题