单选题将运算符“+”重载为非成员函数,下列原型声明中,错误的是(  )。AMyClock operator+(MyClock,long);BMyClock operator+(MyClock,MyClock);CMyClock operator+(1ong,long);DMyClock operator+(1ong,MyClock);

单选题
将运算符“+”重载为非成员函数,下列原型声明中,错误的是(  )。
A

MyClock operator+(MyClock,long);

B

MyClock operator+(MyClock,MyClock);

C

MyClock operator+(1ong,long);

D

MyClock operator+(1ong,MyClock);


参考解析

解析:
重载的“+'运算符的两个参数都是long类型,而C++已经提供了求两个long型数据之和的运算符+,编译器无法区分应该调用哪一个。该运算符重载有二义性。

相关考题:

有如下的运算重载函数定义:Double operator+(int i, int k){return double(i+k);}但定义有错误,对这个错误的最准确的描述是______。A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的B.两个int 型参数的和应该是int 型,而这里将+的返回类型声明为doubleC.没有将运算符重载函数声明为某个类的友元D.C++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符

下列运算符函数中,肯定不属于类Value的成员函数的是( )。A.Value operator+(Value);B.Value operator-(Value,Value);C.Value operator*(int);D.Value operator/(Value);

( 33 )将运算符 “ + ” 重载为非成员函数,下列原型声明中,错误的是A ) MyClock operator + (MyClock,long);B ) MyClock operator + (MyClock,MyClock);C ) MyClock operator + (long,long);D ) MyClock operator + (long,MyClock);

下列是重载为非成员函数的运算符函数原型,其叶错误的是()。A.Fraction operator+(Fraction,Fraction);B.Fraction operator-(Fraction);C.Fraction&operator=(Fraction&,Fraction);D.Fraction&operator+=(Fraction&,Fraction);

将运算符“+”重载为非成员函数,下列原型声明中,错误的是( )。A.MyClock operator+(MyClock,long);B.MyClock operator+(MyClock,MyClock);C.MyClock operator+(long,long);D.MyClock operator+(long,MyClock);

若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。A) Data+(DatA) ;B) Data operator+{Data};C) Data+operator{Data};D) operator+(Data,DatA) ;A.B.C.D.

下面是重载为非成员函数的运算符函数原型,其中错误的是( )。A.Fraction operator+ (Fraction,Fraction);B.Fraction opemtor-(Fraction);C.Fraction perator=(Fraction,Fraction);D.Fraction operator+=(Fraction,Fraction);

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

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

假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( )。A.AB operator+(AB a,AB B)B.AB perator+(AB )C.opetator+(AB a)D.AB operator+()

将运算符“+”重载为非成员函数,下列原型声明中,错误的是( )。A.MyClockoperator+(MyClock,long);B.MyClockoperator+(MyClock,MyCloek);C.MyCloekoperator+(long,long);D.MyClockoperator+(long,MyCloek):

下列是重载为非成员函数的运算符函数原型,其中错误的是( )。A.Fraction operator+(Fraction,Fraction);B.Fraction operator-(Fraction);C.Fractionoperator=(Fraction,Fraction);D.Fractionoperator+=(Fraction,Fraction);

已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是A.Value operator+(Value v, int i);B.Value operator+(Value v=value, int i);C.Value operator+(Value v, int i=0);D.Value operator+(Value v=value, int i=0);

有如下的运算符重载函数定义: double operator+(inti,intk){return double(i+k);} 但定义有错误,对这个错误最准确的描述是( )。A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为doubleC.没有将运算符重载函数声明为某个类的友元D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符

若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。 A.Data+(DatA.;SXB 若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。A.Data+(DatA.;B.Data operator+(DatA.;C.Data+operator(DatA.;D.operator+(Data,DatA.;

假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员数的声明语句为( )。A.AB operator+(ABa,AB)B.AB perator+(AB)C.opetacor+(AB A)D.AB operator+()

已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是( )。A.Value operator+(Value v,int i);B.Value operator+(Value v=value,int i);C.Value operator+(Value vint i=0);D.Value operator+(Value v=value,int i=0);

已知类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);

MyClock 类的拷贝构造函数的声明语句为( )。A.MyClock(MyClock x)B.MyClock(MyClock x)C.MyClock(MyClock x)D.MyClock(MyClock *x)

MyClock为一个类,则指向“MyClock a,* p;”语句时,调用该类构造函数( )次。A.1B.2C.3D.4

下面是重载为非成员函数的运算符的函数原型,其中错误的是( )。A.Fraction operator+(Fraction,Fraction);B.Fraction operator一(Fraction);C.Fractionoperator=(Fraction,Fraction);D.Fractionoperator+=(Fraction,Fraction);

在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。A、operator+有两个参数,operator*有两个参数B、operator+有两个参数,operator*有一个参数C、operator+有一个参数,operator*有两个参数D、operator+有一个参数,operator*有一个参数

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

单选题若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是(  )。AData+ (Data);BData operator+(Data);CData +operator(Data);Doperator+ (Data, Data);

单选题下面是重载为非成员函数的运算符函数原型,其中错误的是(  )。AFraction operator+(Fraction,Fraction);BFraction operator-(Fraction);CFraction operator=(Fraction,Fraction);DFraction operator +=(Fraction,Fraction);

单选题已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。AValue operator+(Value v,int i);BValue operator+(Value v=value,int i);CValue operator+(Value v ,int i=0);DValue operator+(Value v=value,int i=0);

单选题将运算符“+”重载为非成员函数,下列原型声明中,错误的是(  )。AMyClock operator+(MyClock,long);BMyClock operator+(MyClock,MyClock);CMyClock operator+(1ong,long);DMyClock operator+(1ong,MyClock);

单选题下列运算符函数中,肯定不属于类Value的成员函数的是(  )。AValue operator+(Value);BValue operator-(Value,Value);CValue operator*(int);DValue operator/(Value);