C++语言程序设计

单选题运算符函数调用格式的表达式“y/x抖”与表达式“y.operator/(operator++(x,o))”的含义相同,由此可看出(  )A “/”和“++”都是作为成员函数重载的B “/”和“++”都是作为非成员函数重载的C “/”是作为成员函数重载的,“++”是作为非成员函数重载的D “/”是作为非成员函数重载的,“++”都是作为成员函数重载的

题目
单选题
运算符函数调用格式的表达式“y/x抖”与表达式“y.operator/(operator++(x,o))”的含义相同,由此可看出(  )
A

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

B

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

C

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

D

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

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

第1题:

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

A ) :: 运算符不能重载

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

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

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


正确答案:C

第2题:

多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但运算符[]只能作为类的______函数重载。


正确答案:成员
成员 解析:此题考查的是运算符重载。在C++中,“=”、“[]”、“()”、“->”以及所有的类型转换符只能作为成员函数重载,不能重载为友元函数。

第3题:

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

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

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

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

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


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

第4题:

如果在表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为

A.(operator++(x) ) .operator/(y)

B.(operator++(0) ) .operator/(y)

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

D.operator/((operator++(0) ) ,y)


正确答案:A
解析:C++中用成员函数重载++x为:x. operator++( ) ,用友元函数重载++x为:operator ++(x) ,用成员函数重载x/y为:x. operator/(y) ,用友元函数重载x/y为:operator/(x, y) 。

第5题:

下面关于成员函数重载运算符和友元函数重载运算符相同的是( )。

A.成员函数和友元函数可重载的运算符是不相同的

B.成员函数和友元函数重载运算符时都需要用到this指针

C.成员函数和友元函数重载运算符时都需要声明为公有的

D.成员函数和友元函数重载运算符时的参数可能是相同的


正确答案:A

第6题:

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

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

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

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

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


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

第7题:

如果表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为

A.(operator++(x)).operator/(y)

B.(operator++(0)).operator/(y)

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

D.operator/((operator++(0)),y)


正确答案:A
解析:C++中用成员函数重载++x为:x.operator++(),用友元函数重载++x为:operator ++(x),用成员函数重载x/y为:x.operator/(y),用友元函数重载x/y为:operator/(x,y)。

第8题:

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

A ) a .orerator++ ( 1 )

B ) operator++ ( a )

C ) operator++ ( a , l )

D ) a.operator++ ( )


正确答案:D

第9题:

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

A.::运算符不能重载

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

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

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


正确答案:D
解析:重载[]运算符不一定要完成“下标访问”操作,可以在其运算符函数中执行任意允许的操作。

第10题:

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

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

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

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

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


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

更多相关问题