-
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。
A、operator+有两个参数,operator*有两个参数
B、operator+有两个参数,operator*有一个参数
C、operator+有一个参数,operator*有两个参数
D、operator+有一个参数,operator*有一个参数
-
运算符重载的形式有两种:成员函数形式和友元形式。
A . 正确
B . 错误
-
在C++中,运算符的重载有两种实现方法,一种是通过成员函数实现,另一种则通过友元函数实现
-
将运算符“+”函数重载为类的成员函数,交换律不适用。()
是
否
-
如果表达式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)
-
如果在表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为
A.(operator++(x) ) .operator/(y)
B.(operator++(0) ) .operator/(y)
C.operator/((operator++(x,0) ) ,y)
D.operator/((operator++(0) ) ,y)
-
已知Value是一个类,Value是Value的一个对象。 下列以非成员函数形式重载的运算符函数原形中,正确的是()。
A.Valueoperator+(Valuev,inti);
B.Valueoperator+(Valuev=value,inti);
C.Valueoperator+(Valuevinti=O);
D.Valueoperator+(Valuev=value,inti=O);
-
假定有类定义class A; 现在想要输出A类对象a的值,正确的是() ① 将运算符<<重载为A的成员函数; ② cout<<a; ③ 将运算符<<重载为A的友元函数; ④ 在类A中定义公有成员函数display(),通过调用a.display()输出a的值
A.①②③
B.②③④
C.①③④
D.③④
-
将x+y中的+运算符用友元函数重载应写为【11】。
将x+y中的+运算符用友元函数重载应写为【11】 。
-
下列是重载为非成员函数的运算符函数原型,其叶错误的是()。A.Fraction operator+(Fraction,Fracti
下列是重载为非成员函数的运算符函数原型,其叶错误的是()。
A.Fraction operator+(Fraction,Fraction);
B.Fraction operator-(Fraction);
C.Fraction&operator=(Fraction&,Fraction);
D.Fraction&operator+=(Fraction&,Fraction);
-
C++在重载运算将中,如用成员函数重载一元运算符参数表中需要______个参数,如用友元函数重载一元运算符参数表中需要______个参数。
-
在表达式x+y*z中,+作为成员函数重载的运算符,*作为友元函数重载的运算符,以下叙述中正确的是()
A.operator+有2个参数,operator*有2个参数
B.operator+有2个参数,operator*有1个参数
C.operator+有1个参数,operator*有2个参数
D.operator+有1个参数,operator*有1个参数
-
只能作为成员函数重载的是()。A.=B.++C.*D.new
只能作为成员函数重载的是()。
A.=
B.++
C.*
D.new
-
已知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);
-
一个双目运算符作为类的成员函数重载时,重载函数的参数表中有【】个参数。
一个双目运算符作为类的成员函数重载时,重载函数的参数表中有【 】个参数。
-
如果对TA类对象使用逻辑运算符“==”重载,以下函数声明正确的是()。
A.void & TA::operator==(const TA &a);
B.TA & TA::operator==(const TA &a);
C.bool & TA::operator==(const TA &a);
D.bool TA::operator==(const TA &a);
-
以下类中说明了“++”运算符重载函数的原型。 class TA { public: .. .. .. friend TA operator ++(TA &); }; 编译器把表达式”++d”解释为:()。
A.d.operator++()
B.d.operator++(d)
C.operator++()
D.operator++(d)
-
如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A.a.operator+()
B.b.operator+()
C.operator+(a,b)
D.operator(a+b)
-
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是
A.operator+有两个参数,operator*有两个参数
B.operator+有两个参数,operator*有一个参数
C.operator+有一个参数,operator*有两个参数
D.operator+有一个参数,operator*有一个参数
-
如果表达式--x中的“--”是重载的类运算符,采用运算符函数调用格式,该表达式还可以表示为【】。
如果表达式--x中的“--”是重载的类运算符,采用运算符函数调用格式,该表达式还可以表示为【 】。
-
【简答题】定义一个复数类,重载“-=”运算符,使这个运算符能直接完成复数的“-=”运算。⑴分别用成员函数与友元函数编写运算符重载函数;⑵在主函数中定义复数对象 c1(10,20)、c2(15,30),进行 c2-=c1 的复数运算,并输出 c1、c2 的复数值。
-
在你自己定义的类中如果要重载流插入运算符 << ,你必须将该运算符重载为类的友元函数,而不是成员函数,否则就会出现非常奇怪的使用方式。
-
已知将运算符“+”和“*”作为Complex的成员函数重载,设c1和c2是类complex的对象,则表达式c1+c2*c1等价于()
A.c1.operaror*(c2.operator+(c1))
B.c1.operator+(c2.operator*(c1))
C.c1.operator*(c1.operator+(c2))
D.c2.operator+(c1.operator*(c1))
-
下列重载为非成员函数的运算符函数原型中,错误的____()
A.Fraction operator -(Fraction)
B.Fraction& operator =(Fraction&, Fraction)
C.Fraction& operator +=(Fraction&, Fraction)
D.Fraction operator +(Fraction, Fraction)