运算符重载是通过函数来实现的,定义运算符重载函数时,函数名中要使用关键字operator。

题目

运算符重载是通过函数来实现的,定义运算符重载函数时,函数名中要使用关键字operator。


相似考题
更多“运算符重载是通过函数来实现的,定义运算符重载函数时,函数名中要使用关键字operator。”相关问题
  • 第1题:

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

    A.operator/(x.operato--(), y);

    B.operator/(operator--(x), y);

    C.x.operator--().operator/(y);

    D.y.operator/(operator--(x));


    正确答案:B
    解析:运算符重载实际上时函数的重载。重载运算符的一般格式:函数类型operator运算符名称(参数表)。重载运算符之后:函数operator+重载运算符“+”。“-”重载为“operator--;”,“/”重载为“operator/”。另外重载不能改变运算的优先级,-x/y计算--x后,除以y,所以表达式改写为:operator/(operator--(x),y);。

  • 第2题:

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

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

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

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

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

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


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

  • 第3题:

    下列关于赋值运算符“=”重载的叙述中,正确的是

    A.赋值运算符只能作为类的成员函数重载

    B.默认的赋值运算符实现了“深层复制”功能

    C.重载的赋值运算符函数有两个本类对象作为形参

    D.如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符


    正确答案:A
    解析:=、[]、()、->以及所有的类型;转换运算符只能作为成员函数重载,A项正确。默认的赋值运算符只实现了浅层复制,B项错误。赋值运算符只能作为成员函数重载,形参表中只有一个参数,对应于第二操作数,C项错误。一个类中如果需要重载运算符 “=",通常也就需要定义自己特有的复制构造函数,反之亦然,故D项错误。

  • 第4题:

    运算符“+”允许重载为类成员函数,或者非成员函数。若用operator+(c1,c2)这样的表达式来使用运算符“+”,应将“+”重载为【 】 函数。


    正确答案:非成员
    非成员 解析:“+”是一个二元运算符,当它作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以this指针的形式隐藏在形参表中。而当“+”作为非成员函数重载时,两个操作数都出现在形参表中。

  • 第5题:

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

    A.a.operator++(1)

    B.operator++(A)

    C.operator++(a,1)

    D.a.operator++()


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

  • 第6题:

    重载加法运算符“+”,其函数名是______。


    正确答案:operator+
    operator+ 解析:此题考查运算符重载的概念。C++语言把重载的运算符视作特殊的函数,称为运算符函数,赋予已有的运算符多重含义。运算符函数名由运算符前加关键字operator构成。

  • 第7题:

    下面关于运算符重载中正确的是( )。

    A.运算符函数的返回类型不能声明为基本数据类型

    B.C 的所有运算符都可以重载

    C.在类型转换符函数的定义中不需要声明返回类型

    D.通过运算符重载可以定义C 中没有的运算符


    正确答案:C

  • 第8题:

    设op表示要重载的运算符,那么重载运算符的函数名是()

    • A、operator op
    • B、op
    • C、函数标识符
    • D、函数标识符op

    正确答案:A

  • 第9题:

    多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。


    正确答案:正确

  • 第10题:

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

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

    B

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

    C

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

    D

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


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

  • 第11题:

    问答题
    运算符重载实际上通过函数来重新定义运算符的功能,运算符重载的功能直接通过函数调用是否可以?

    正确答案: 运算符重载实际上通过函数来重新定义运算符的功能,运算符重载的功能可以直接通过函数调用。
    解析: 暂无解析

  • 第12题:

    单选题
    设op表示要重载的运算符,那么重载运算符的函数名是()
    A

    operator op

    B

    op

    C

    函数标识符

    D

    函数标识符op


    正确答案: A
    解析: 暂无解析

  • 第13题:

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

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

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

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

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


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

  • 第14题:

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

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

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

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

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


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

  • 第15题:

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

    A.::运算符不能重载

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

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

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


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

  • 第16题:

    如果表达式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是正确的。

  • 第17题:

    下列关于运算符函数的叙述中,错误的是

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

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

    C.运算符函数的参数可以是对象

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


    正确答案:C
    解析:运算符函数可以重载为成员函数,也可以重载为非成员函数,如重载为友元函数。

  • 第18题:

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

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

    B.运算符重载作为成员函数时,如果参数表中无参数,重载的是一元运算符

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

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


    正确答案:B

  • 第19题:

    operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为__________的。


    正确答案:
    public【解析】运算符可以重载为成员函数或友元函数,但是应该把函数说明为公有的,以便各个量都能引用。

  • 第20题:

    运算符重载实际上通过函数来重新定义运算符的功能,运算符重载的功能直接通过函数调用是否可以?


    正确答案: 运算符重载实际上通过函数来重新定义运算符的功能,运算符重载的功能可以直接通过函数调用。

  • 第21题:

    判断题
    运算符重载是通过函数来实现的,定义运算符重载函数时,函数名中要使用关键字operator。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第22题:

    判断题
    多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

    单选题
    如果表达式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
    解析:
    运算符函数作为成员函数重载时,第一操作数就是对象本身,并不显式地出现在形参表中;运算符函数作为非成员函数重载时,由于没有隐含的this指针,因此所有的操作数均出现在形参表中。