更多"已知类Ben中将二元运算符“/”,重载为友元函数,若c1、c2是Ben"的相关试题:
[单项选择]下面关于成员函数重载运算符和友元函数重载运算符相同的是
A) 成员函数和友元函数可重载的运算符是不相同的
B) 成员函数和友元函数重载运算符时都需要用到this指针
C) 成员函数和友元函数重载运算符时都需要声明为公有的
D) 成员函数和友元函数重载运算符时的参数町能是相同的
[多项选择]【说明】
在矩形类中重载关系运算符“>=”,采用友元,比较的依据是矩形面积的大小。重载算术运算符“+=”,采用成员函数,更新矩形对象的长与宽,分别加上形参矩形的长与宽。重载算术运算符+,利用构造函数,采用友元。
【代码】
class Crect
int length,witdth;
public;
CRect(int l,int w)
length=l;
width=w;
friend int operator>=(CRect& r1, CRect& r2)
return (1) >= (2) ;//比较面积
void operator+=(CRect& r)
(3) ;//求长
(4) ;//求宽
friend operater+(CRect& r1, CRect& r2)
return CRect( (5) ); //利用构造函数
[单项选择]下面关于成员函数重载运算符和友元函数重载运算符相同的是( )。
A. 成员函数和友元函数可重载的运算符是不相同的
B. 成员函数和友元函数重载运算符时都需要用到this指针
C. 成员函数和友元函数重载运算符时都需要声明为公有的
D. 成员函数和友元函数重载运算符时的参数可能是相同的
[单项选择]下列运算符不能重载为友元函数的是( )。
A. = () [] ->
B. + - ++ --
C. > < >= <=
D. += -= *= /=
[单项选择]已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列
Myst x3.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);
[单项选择]既可重载为一元运算符,又可重载为二元运算符。
A. “*”
B. “=”
C. “=”和“*”
D. “*”和“*++”
[单项选择]下列运算符中全都可以被友元函数重载的是( )。
A. =,+,-,/
B. [],+,(),new
C. ->,+,*,>>
D. <<,>>,+,*
[填空题]C++在重载运算中,如用成员函数重载一元运算符参数表中需要 【8】 个参数,如用友元函数重载一元运算符参数表中需要1个参数。
[填空题]C++在重载运算符中,如用成员函数重载一元运算符参数表中需要 【13】 个参数,如用友元函数重载一元运算符参数表中需要 【14】 个参数。
[单项选择]如果表达式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)