第十章
下列运算符中,( )运算符在C++中不能重载。
答案:: :
利用成员函数重载运算符:obj1*obj2被编译器解释为(  )。
obj2.operator *(obj1)
*(obj1,obj2)
obj1.operator *(obj2)
答案:obj1.operator *(obj2)
如果对TA类对象使用逻辑运算符“==”重载,以下函数声明正确的是( )。
bool TA::operator==(const TA &a)
bool & TA::operator==(const TA &a)
void & TA::operator==(const TA &a)
答案:bool TA::operator==(const TA &a);
在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( )。
作为成员函数重载的双目运算符
作为成员函数重载的单目运算符
作为友元函数重载的双目运算符
答案:作为成员函数重载的单目运算符
在语句int n; cin>>n;中,cin是( )。
对象名
类名
函数名
答案:对象名
关于运算符重载,下列表述中错误的是( )。
C++已有的大部分运算符都可以重载
运算符函数的返回类型不能声明为基本数据类型
不可以通过运算符重载来创建C++中原来没有的运算符
答案:运算符函数的返回类型不能声明为基本数据类型
C ++流中重载的运算符<<是一个( )。
用于输出操作的非成员函数
用于输出操作的成员函数
用于输入操作的非成员函数
答案:用于输出操作的非成员函数
若要对BigData类中用成员函数方式重载取模运算符,下列声明选项中正确的是( )。
operator %(BigData, BigData);
BigData operator%(const BigData);
BigData % (const BigData);
答案:BigData operator%(const BigData);
下列运算符中哪些是不能够被重载的( )。
[], %, <=, --
 –>*, .*, sizeof, ::, ? :
+=new/== =
答案:–>*, .*, sizeof, ::, ? :
下面是重载为非成员函数的运算符的函数原型,其中错误的是( )。
BigInt& operator *BigInt, BigInt);
BigInt& operator =BigInt&, BigInt);
BigInt operator +BigInt, BigInt);
答案:BigInt& operator =(BigInt&, BigInt);
如果表达式a>=b,中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为( )。
a.operator>=(b, a)
a.operator>=(b)
operator>=(a, b)
答案:operator>=(a, b)
在名为BigNumber类的类体中对运算符函数double进行如下声明:operator double(BigNumber); 函数声明中有一个明显的错误,这个错误就是( )。
参数表中不应该有任何参数
缺少对函数返回类型的说明
函数声明中缺少函数体
答案:参数表中不应该有任何参数
下列关于运算符重载的描述中,正确的是( )。
运算符重载成为成员函数时,若参数表中无参数,重载是一元运算符
一元运算符只能作为成员函数重载
二元运算符重载成为非成员函数时,参数表中有一个参数
答案:运算符重载成为成员函数时,若参数表中无参数,重载是一元运算符
下列关于运算符重载的描述中,( )是正确的。
运算符重载可以改变优先级
运算符重载不可以改变语法结构
运算符重载可以改变操作数的个数
答案:运算符重载不可以改变语法结构
下列关于C++流的叙述中,下面说法正确的是( )。
cinC++预定义的标准输入流函数
cinC++预定义的标准输入流对象
以上答案都不对
答案:cin是C++预定义的标准输入流对象
若要在Vector类中将*重载为一元运算符,下列重载函数声明中肯定有错的是( )。
Vector operator *();
int operator *(Vector);
Vector operator *(Vector, Vector);
答案:Vector operator *(Vector, Vector);
重载流插入运算符<<时,下列设计不合理的是( )。
为运算符函数设置两个参数
将运算符定义为类的成员函数
将运算符函数的第一个参数设为ostream &
答案:将运算符定义为类的成员函数
若为类MyNumber重载运算符“/”,下列声明中,错误的是( )。
friend MyNumber operator/(int, float);
friend MyNumber operator/(float, MyNumber);
friend MyNumber operator/(MyNumber, MyNumber);
答案:friend MyNumber operator/(int, float);
运算符重载时以下性质不一定会保持的是( )。
操作数的个数、优先级
操作数的个数、结合性
优先级、结合性
答案:返回值类型、操作数类型
以下类中说明了“++”运算符重载函数的原型。class TA{ public: .. .. .. friend TA operator ++(TA &);};编译器把表达式”++d”解释为:( )。
operator++()
d.operator++()
operator++(d)
答案:operator++(d)

点赞(0) dxwkbang
返回
顶部