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

题目

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


相似考题
更多“operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数 ”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:A

  • 第2题:

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

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

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

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

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


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

  • 第3题:

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

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

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

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

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


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

  • 第4题:

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

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

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

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

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


    正确答案:A

  • 第5题:

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

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

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

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

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


    正确答案:B
    解析:一元运算符可以作为全局函数重载,所以选项A) 错误。二元运算符重载为非成员函数时,参数表中有两个参数,所以选项C)也错误。C++中有些运算符不能被重载,如域运算符(::),条件运算符(?:)等,具体哪些运算符不能被重载与编译器有关,所以选项D) 错误。

  • 第6题:

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

    A.a.operator++(1)

    B.operator++(A)

    C.operator++(a,1)

    D.a.operator++()


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

  • 第7题:

    在重载运算符函数时,下面( )。运算符必须重载为类成员函数形式。

    A.+

    B.-

    C.++

    D.->


    正确答案:D

  • 第8题:

    如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

    A.a.operator==( )

    B.b.operator==( )

    C.operator==(a,b)

    D.operator==(b,a)


    正确答案:C

  • 第9题:

    如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。

    • A、a.operator==(b)
    • B、b.operator==(a)
    • C、operator==(a,b)
    • D、operator==(b,a)

    正确答案:C

  • 第10题:

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

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

    B

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

    C

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

    D

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


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

  • 第11题:

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

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

    B

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

    C

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

    D

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


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

  • 第12题:

    单选题
    如果表达式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指针,因此所有的操作数均出现在形参表中。

  • 第13题:

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

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

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

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

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


    参考答案:B

  • 第14题:

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

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

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

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

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


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

  • 第15题:

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


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

  • 第16题:

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


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

  • 第17题:

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

  • 第18题:

    在重载运算符函数时,下面运算符必须重载为类的成员函数的是( )。

    A.+

    B.-

    C.++

    D.->


    正确答案:D
    解析:=(),[],->运算符不能够重载为类的友元函数。

  • 第19题:

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

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

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

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

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


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

  • 第20题:

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

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

    正确答案:A

  • 第21题:

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


    正确答案:正确

  • 第22题:

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

    ::运算符不能重载

    B

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

    C

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

    D

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


    正确答案: A
    解析:
    运算符重载是针对C++中原有运算符进行的,不可能通过重载创造出新的运算符,C++规定,运算符“.”、“.*”、“->”、“::”、“?:”不能重载。作为非成员函数重载的运算符,所有的操作数都必须以参数的形式出现在参数表中,而不必将其定义为友元。

  • 第23题:

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

    B


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