itgle.com

如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。A.a.operator+( )B.b.operator+( )C.operator+(a,b)D.operator(a+b)

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

A.a.operator+( )

B.b.operator+( )

C.operator+(a,b)

D.operator(a+b)


相似考题
参考答案和解析
正确答案:A
更多“如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。 ”相关问题
  • 第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题:

    如果表达式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。

  • 第3题:

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

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

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

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

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


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

  • 第4题:

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

  • 第5题:

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

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

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

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

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


    正确答案:B
    B。【解析】本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2含义相同。同理,运算符“/”作为友元函数重载,则(--x)/y与表达式operator/((…x),y)相同。前缀运算符“--”作为友元函数重载,则--x与operator--(x)相同,所以组合起来是operator/(operator--(x),y);,即B选项。

  • 第6题:

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

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

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

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

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


    正确答案:B

  • 第7题:

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

    A.x.operator++(0).operator*(y)

    B.openrator*(x.operator++(0),y)

    C.y.operator*(openrator++(x,0))

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


    正确答案:C

  • 第8题:

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

    A.a.operator++(1)

    B.operator++( )

    C.operator++(a,1)

    D.a.operator++()


    正确答案:D

  • 第9题:

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

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

    正确答案:C

  • 第10题:

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

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

    B

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

    C

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

    D

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


    正确答案: C
    解析:
    重载运算符的一般格式:函数类型operator运算符名称(参数表)。重载运算符不能改变运算符的优先级,因此--x/y先计算--x,再除以y,所以表达式改写为:“operator/(operator--(x),y);”。

  • 第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题:

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

    A.jsj-ej-0253.jpg

    B.jsj-ej-0254.jpg

    C.jsj-ej-0255.jpg

    D.jsj-ej-0256.jpg


    正确答案:B
    本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且cl、c2都是该类的对象,则cl.operator+(c2)与cl+c2含义相同。如果十作为该类的非成员函数重载,则operator+(cl,c2)与cl+c2含义相同。同理,运算符″″作为友元函数重载,则--x)y与表达式operator/((--x),y)相同。前缀运算符″一一″作为友元函数重载,则--x与operator--(x)相同,所以组合起来是operator/(operator-(x),y);,即B选项。

  • 第14题:

    如果表达式--x中的“--”是重载的类运算符,采用运算符函数调用格式,该表达式还可以表示为【 】。


    正确答案:x.operator--()
    x.operator--() 解析:本题考核运算符函数的两种调用方式。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2函数相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2相同。

  • 第15题:

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


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

  • 第16题:

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


    正确答案:x=y.operator*(z)
    x=y.operator*(z)

  • 第17题:

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

    A.a.operator++(1)

    B.operator++(A)

    C.operator++(a,1)

    D.a.operator++()


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

  • 第18题:

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

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

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

    C.运算符函数只能定义为类的成员函数

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


    正确答案:C
    C。【解析】该题主要考查运算符函数的定义及运算符重载时应注意事项,运算符重载是函数重载的一种特殊情况。

  • 第19题:

    如果表达式++i*k中的“++”和“*”都是重载的非静态成员运算符,则采用运算符函数调用格式,该表达式还可表示为= ______。

    A.operator*(i.perator++(),k)

    B.operator*(operator++(i),k)

    C.(i. operator++()).operator*(k)

    D.k.operator*(operator++(i))


    正确答案:B

  • 第20题:

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

    Aa.operator==(b)

    Bb.operator==(a)

    Coperator==(a,b)

    Doperator==(b,a)


    C

  • 第21题:

    单选题
    如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
    A

    a.operator+(b)

    B

    b.operator+(a)

    C

    operator+(a,b)

    D

    operator(a+b)


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

  • 第22题:

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

    a.operator++(1)

    B

    operator++(a)

    C

    operator++(a,1)

    D

    a.operator++()


    正确答案: B
    解析:
    表达式++a中,“++”运算符是一元前缀运算符,作为成员函数重载时,形参个数应该比操作数的个数少一个,即不含形参。

  • 第23题:

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

    a.operator==(b)

    B

    b.operator==(a)

    C

    operator==(a,b)

    D

    operator==(b,a)


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

  • 第24题:

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

    a.operator>=(b)

    B

    b.operatotr>=(a)

    C

    operator>=(a,b)

    D

    operator>=(b,a)


    正确答案: B
    解析:
    运算符函数作为非成员函数时,没有隐含的this指针,因此所有的操作数必须出现在参数表中,对于二元运算符,参数表中有两个参数,分别代表第一操作数和第二操作数,且顺序不能改变,因此表达式a>=b等效于operator>=(a,b)。