-
在表达式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.③④
-
下列是重载为非成员函数的运算符函数原型,其叶错误的是()。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++在重载运算将中,如用成员函数重载一元运算符参数表中需要______个参数,如用友元函数重载一元运算符参数表中需要______个参数。
-
在派生类中重载一个虚函数时,要求函数名.参数个数.参数类型和函数返回值()
A.相同
B.不同
C.相容
D.部分相同
-
在表达式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);
-
如果表达式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*有一个参数
-
已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列M
已知类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);
-
【简答题】定义一个复数类,重载“-=”运算符,使这个运算符能直接完成复数的“-=”运算。⑴分别用成员函数与友元函数编写运算符重载函数;⑵在主函数中定义复数对象 c1(10,20)、c2(15,30),进行 c2-=c1 的复数运算,并输出 c1、c2 的复数值。
-
【单选题】父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么 。函数同名,通通覆盖,不同层次的函数不能重载。
A.在子类中这两个函数构成重载关系
B.子类不会继承父类的这个函数
C.子类中的函数会覆盖父类中的函数
D.编译时会发生错误
-
在你自己定义的类中如果要重载流插入运算符 << ,你必须将该运算符重载为类的友元函数,而不是成员函数,否则就会出现非常奇怪的使用方式。
-
如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()
A.operator++(1)
B.operator++(a)
C.operator++(a,1)
D.a.operator++()
-
已知将运算符“+”和“*”作为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)
-
对于双目操作符,其重载函数(非成员函数)带有()个参数,其中至少有一个为()的类型。