文档库

最新最全的文档下载
当前位置:文档库 > C++课后习题答案第六章

C++课后习题答案第六章

C++作业答案

第6章运算符重载

6.1 选择题

1.在下列运算符中,能重载的是( a,c,d )。

(a) ! (b) sizeof (c) new (d) delete

2. 在下列运算符中,不能重载的是( c )。

(a) <= (b) >> (c) && (d) &=

3.下列关于运算符重载的描述中,( d )是正确的。

(a) 可以改变参与运算的操作数个数(b) 可以改变运算符原来的优先级

(c) 可以改变运算符原来的结合性(d) 不能改变原运算符的语义

4.下列函数中,能重载运算符的函数是( b,c )。

(a) 成员函数 (b) 构造函数(c) 析构函数 (d) 友员函数

5.不能用友员函数重载的是( a )。

(a) = (b) == (c) += (d) !=

6.下面描述中,错误的是( b )。

(a) 只有系统预先定义的运算符才可能被重载

(b) 使用类型转换函数不能把一个类转换为另一个类

(c) 使用类型转换函数可以把类转换为基本类型

(d) 类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数

6.2 阅读下列程序,写出执行结果

1.#include

class T

{ public :

T() { a = 0; b = 0; c = 0; }

T( int i , int j , int k )

{ a = i; b =j ; c = k; }

void get( int &i , int &j , int &k )

{ i = a; j = b; k = c; }

T operator * ( T obj );

private:

int a , b , c;

};

T T::operator * ( T obj )

{ T tempobj;

tempobj.a = a * obj.a;