第13章习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第13章
一、选择题
1、下面关于运算符重载的说法中,错误的是()。
A、可以对C++所有运算符进行重载
B、运算符重载保持固有的结合性和优先级顺序
C、运算符重载不能改变操作数的个数
D、在运算符函数中,不能使用缺省的参数值
2、下列运算符能被重载的是()。
A、::
B、?:
C、.
D、%
3、下列叙述正确的是()。
A、运算符重载函数只能是一个成员函数
B、运算符重载函数既可以是一个成员函数,也可以是友元函数
C、运算符重载函数只能是一个非成员函数
D、运算符重载函数只能是友元函数
4、下列叙述不正确的是()。
A、利用成员函数重载二元运算符时,参数表中的参数必须为两个
B、利用成员函数重载二元运算符时,成员函数的this指针所指向的对象作为运算符的左操作数
C、利用成员函数重载二元运算符时,参数表中的参数作为此运算符的右操作数
D、运算符重载时不能改变运算符的语法结构
5、为了区分一元运算符的前缀和后缀运算,在后缀运算符进行重载时,额外添加一个参数,其类型是()。
A、void
B、char
C、int
D、float
6、下列能正确重载运算符的友元函数原型是()。
A、friend B operator?: ( );
B、friend B operator+(int x);
C、friend B operator+(B b);
D、friend B operator+(B b, B a);
7、下列叙述正确的是()。
class B
{ int a,b;
public:
B(int aa=0, int bb=0) { a=aa; b=bb; }
B operator+ ( int x ) //A
{ B r;
r.a=a+x;
r.b=b+x;
return r;
}
};
void main( )
{ B x(3,5), y(8,4), z1, z2;
z1=x+5;
z2=10+y;//B
}
A、A行有错误
B、B行有错误
C、A行和B行都有错误
D、A行和B行都没有错误
8、下列叙述正确的是()。
class B
{ int a,b;
public:
B(int aa=0, int bb=0) { a=aa; b=bb; }
friend void operator++( ); //A
void show( ) { cout< }; friend void operator++( ) //B { …} A、A行有错误 B、B行有错误 C、A行和B行都有错误 D、A行和B行都没有错误 二、填空题 1、运算符有两种实现方法,一种是通过友元函数来实现,另一种通过()函数来实现。 2、下列程序的运行结果是()。 class point { int a,b; public: point( int aa, int bb ) { a=aa; b=bb; } void operator +=(point &p) { a+=p.a; b+=p.b; } void show( )