将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为( )。A.operator+(operator*(y,z))B.x.operator+ (operator*(y,z))C.x.operator+(x*(y,z))D.x+(operator*(y,z))

题目

将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为( )。

A.operator+(operator*(y,z))

B.x.operator+ (operator*(y,z))

C.x.operator+(x*(y,z))

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


相似考题
更多“将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为( )。A.operator+(operator*(y,z))B.x.operator+ (operator*(y,z))C.x.operator+(x*(y,z))D.x+(operator*(y,z))”相关问题
  • 第1题:

    如果表达式x*y+2中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为

    A.operator+(operator*(x,y),z)

    B.x.operator+(operator*(x,y),z)

    C.y.operator*(operator+(x,y),z)

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


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

  • 第2题:

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

  • 第3题:

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

    A.operator+(operator * (x, y) ,Z)

    B.x. operator+(operator * (x, y) ,z)

    C.y. operator * (operator+(x, y) ,z)

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


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

  • 第4题:

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

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

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

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

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


    正确答案:A

  • 第5题:

    在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是 ,

    A.operator+有两个参数,operator*有两个参数

    B.operator+有两个参数,operator*有一个参数

    C.operator+有一个参数,operator*有两个参数

    D.operator+有一个参数,operator*有一个参数


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

  • 第6题:

    在表达式x+ y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是( )。

    A.operator+有两个参数,operator*有两个参数

    B.operator+有两个参数,operator*有一个参数

    C.operator+有一个参数,operator*有两个参数

    D.operator+有一个参数,operator*有一个参数


    正确答案:C

  • 第7题:

    如果算符函数调用格式的表达式:x.operator-(operator++(y,0)中的“-”是作为成员函数重载的,“++”是作为友元函数重载的,那么该表达式还可以表示为:( )

    A.x-y++

    B.x-(++y)

    C.(x++)-y

    D.++x-y


    正确答案:A
    解析:本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2含义相同。同时一元运算符“++”重载函数调用中采用了虚拟参数,说明++为后缀的,所以其等价的表达式为“x-y++”。

  • 第8题:

    已知类MyClas有一个只需要一个double型参数的构造函数,其将运算符“+”重载为友元函数。要使语句序列 MyClas x(1.2),y(2.3),z(0);z=x+y; 能够正常运行,运算符函数 operator+应在类中声明为( )。

    A.friend MyClas operator+(int,MyClas&);

    B.friend MyClas operator+(MyClas,MyClas);

    C.friend MyClas operator+(MyClas,MyClas&);

    D.friend MyClas operator+(MyClas&,MyClas);


    正确答案:B
    解析:由重载的定义格式可知运算符函数应在类中声明为:friendMyClasoperator+(MyClas,MyClas);

  • 第9题:

    已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为 友元函数。要使语句序列 Myst x(3.2),y(5.5),z(0.0); z=8 .9-y; y=x-6 .3; 能够正常运行,运算符函数operator-应该在类中声明为( )。

    A.friend Myst operator-(Myst&,Myst&);

    B.friend Myst operator-(Myst,Myst);

    C.friend Myst operator-(Myst,Myst&);

    D.friend Myst operator-(Myst&,Myst);


    正确答案:B
    解析:本题考核运算符的重载运算符作为类友元函数重载的格式为:friend类名>operator运算符>(形参表>):同时形参表中不要使用类对象的引用。由此可知只有B选项符合条件。

  • 第10题:

    如果表达式x*y+z中,\"*\"是作为友元函数重载的,\"+\"是作为友元函数重载的,则该表达式还可为

    A.operator+( operator*(x, y),z)
    B.x.operator+( operator*(x, y),z)
    C.y.operator*( operator+(x, y),z)
    D.x.operator+( operator*(x, y))

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

  • 第11题:

    单选题
    设z=φ(x2-y2),其中φ有连续导数,则函数z满足(  )。
    A

    x∂z/∂x+y∂z/∂y=0

    B

    x∂z/∂x-y∂z/∂y=0

    C

    y∂z/∂x+x∂z/∂y=0

    D

    y∂z/∂x-x∂z/∂y=0


    正确答案: B
    解析:
    令u=x2-y2,则z=φ(u),∂z/∂x=φ′(u)·2x=2xφ′(u),∂z/∂y=-2yφ′(u),故y∂z/∂x+x∂z/∂y=0。

  • 第12题:

    单选题
    将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为(  )。
    A

    operator+(operator*(y,z))

    B

    x.operator+(operator*(y,z))

    C

    x.operator+(x*(y,z))

    D

    x+(operator*(y,z))


    正确答案: C
    解析:
    函数operator+重载了运算符“+”。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以x+y*z被改写为“x.operator+(operator*(y,z))”。

  • 第13题:

    在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员的函数重载的运算符。下列叙述中正确的是

    A.operator+有两个参数,operator*有两个参数

    B.operator+有两个参数,operator*有一个参数

    C.operator+有一个参数,operator*有两个参数

    D.operator+有一个参数,operator*有一个参数


    正确答案:C
    解析:本题考查运算符重载。运算符可重载为成员函数,也可重载为友元函数。当重载为成元函数时,运算符重载函数的形参个数要比运算符操作数的个数少一个,当重载为友元函数时,其参数个数应与操作数个数相同。

  • 第14题:

    若在表达式y/x中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为

    A.x.operator/(y)

    B.operator/(x,y)

    C.y.operator/(x)

    D.operator/(y,x)


    正确答案:C
    解析:“/”是一个二元运算符,作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以this指针的形式隐藏在形参表中。本题中,y为第一操作数,x为第二操作数,故正确答案为C。

  • 第15题:

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

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

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

  • 第18题:

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

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

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

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

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


    正确答案:A

  • 第19题:

    如果表达式x * y+z中,“*”是作为友元函数重载的,“+”是作为成员函数重载的,则该表达式还可为 ( )。

    A.operator+(operator$(X,Y),z)

    B.x.operator+(operator * (x,y),Z)

    C.Y.operator * (operator+(x,Y),z)

    D.x.operator+(operator{(X,Y))


    正确答案:A
    C++中用成员函数重载x*y为:x.oper-ator}(y),用友元函数重载x*Y为:(,perator*(x,Y),用成员函数重载x+Y为:x.operator+(Y),用友元函数重载x+Y为:operator+(x,Y)。

  • 第20题:

    如果表达式--X+y中,--是作为成员函数重载的,+是作为成员函数重载的,则该表达式还可为

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

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

    C.y.operator+(operator--t(x,0))

    D.operator+(x.operator- -t( ))


    正确答案:B
    解析:C++语言中用成员函数重载--x为:x.operator--(),用成员函数重载x+y为:x.operator+(y)。

  • 第21题:

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

    A.y.operator+(x.operator--(0))
    B.y.operator+(x.operator--())
    C.y.operator+(operator--(x,0))
    D.operator+(x.operator--())

    答案:B
    解析:

  • 第22题:

    在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。

    • A、operator+有两个参数,operator*有两个参数
    • B、operator+有两个参数,operator*有一个参数
    • C、operator+有一个参数,operator*有两个参数
    • D、operator+有一个参数,operator*有一个参数

    正确答案:C

  • 第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指针,因此所有的操作数均出现在形参表中。