第13章习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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( )

{ cout<

};

void main( )

{ point p1(3,5), p2(8,4);

p1+=p2;

p1.show( );

}

3、下列程序的运行结果是()。

class S

{ int n;

public:

S(int i) {n=i; }

operator ++( ) { n+=5; }

operator++(int) { n+=2; }

void show( ) { cout<

void main( )

{ S A(5), B(5);

++A; B++;

A.show( );

B.show( );

}

4、下列程序的运行结果为()。

class B

{ int a,b;

public:

B(int aa=0, int bb=0) { a=aa; b=bb; }

friend void operator++(B &b );

void show( ) { cout<

void operator++(B &b)

{ c.a+=2;

c.b+=5;

}

void main( )

{ B x(3,5);

++x;

x.show( );

}

5、下列程序的运行结果为()。

class I

{ public:

I(int x) { value=x; }

I operator++( );

I operator++(int);

void show( ) { cout<

int value;

};

I I ::operator++( )

{ value++;

相关文档
最新文档