单选题下列关于运算符重载的描述中,错误的是(  )。A ::运算符不能重载B 类型转换运算符只能作为成员函数重载C 将运算符作为非成员函数重载时必须定义为友元D 重载[]运算符应完成“下标访问”操作

题目
单选题
下列关于运算符重载的描述中,错误的是(  )。
A

::运算符不能重载

B

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

C

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

D

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

参考答案和解析
正确答案: A
解析:
运算符重载是针对C++中原有运算符进行的,不可能通过重载创造出新的运算符,C++规定,运算符“.”、“.*”、“->”、“::”、“?:”不能重载。作为非成员函数重载的运算符,所有的操作数都必须以参数的形式出现在参数表中,而不必将其定义为友元。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

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

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


正确答案:A

第2题:

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

A )可以通过运算符重载在 C++ 中创建新的运算符

B )赋值运算符只能重载为成员函数

C )运算符函数重载为类的成员函数时,第一操作数是该类对象

D )重载类型转换运算符时不需要声明返回类型


正确答案:A

第3题:

( 33 )有如下的运算符重载函数定义:double operator +(int i, int k){ return double(i+k); }但 定义有错误,对这个错误最准确的描述是

A ) + 只能作为成员函数重载,而这里的 + 是作为非成员函数重载的

B ) 两个 int 型参数的和也应该是 int 型,而这里将 + 的返回类型声明为 double

C )没有将 运算符重载函数声明为某个类的友元

D ) C++ 已经提供了求两个 int 型数据之和的运算符 + ,不能再定义同样的运算符


正确答案:D

第4题:

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

A.通过运算符重载,可以定义新的运算符

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

C.若重载运算符+,则相应的运算符函数名是+

D.重载一个二元运算符时,必须声明两个形参


正确答案:B
解析:一般运算符重载可以采用成员函数方式或友元方式。但成员运算符(.),指向成员的指针,作用域运算符(::),条件运算符(?:)只能采用成员函数方式;重载运算符(+),对应的运算符函数名是operator+();重载一个二元运算符时,只需声明一个形参,左操作数毋须用参数输入,而是通过隐含的this指针传入。

第5题:

下面关于自定义类的运算符重载的说法中,正确的是()。

A.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同

B.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数

C.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员

D.所有运算符都可以以类友元形式进行重载


正确答案:AC

第6题:

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

A ) :: 运算符不能重载

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

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

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


正确答案:C

第7题:

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

A.可以通过运算符重载在C++中创建新的运算符

B.赋值运算符只能重载为成员函数

C.运算符函数重载为类的成员函数时,第一操作就是该类对象

D.重载类型转换运算符时不需要声明返回类型


正确答案:A
解析:运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

第8题:

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

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

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

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

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


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

第9题:

下列关于运算符重载的描述中,错误的是( )。A.可以通过运算符重载在C++中创建新的运算符

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

A.可以通过运算符重载在C++中创建新的运算符

B.赋值运算符只能重载为成员函数

C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象

D.重载类型转换运算符时不需要声明返回类型


正确答案:A
A。【解析】运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

第10题:

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

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

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

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

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


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

更多相关问题