- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题7与其解答
习题7及其解答
7.1 选择题
1.在下列运算符中,不能重载的是( b )。
(a) ! (b) sizeof (c) new (d) delete
2.下列关于运算符重载的描述中,( d )是正确的。
(a) 可以改变参与运算的操作数个数 (b) 可以改变运算符原来的优先级
(c) 可以改变运算符原来的结合性 (d) 不能改变原运算符的语义
3.下列函数中,不能重载运算符的函数是( b )。
(a) 成员函数 (b) 构造函数 (c) 普通函数 (d) 友员函数
4.要求用成员函数重载的运算符是( a )。
(a) = (b) == (c) = (d) ++
5.要求用友员函数重载的运算符是( c )。
(a) = (b) [] (c) (d) ()
6. 下面关于类型转换的描述中,错误的是( a )。
(a) 任何形式的构造函数都可以实现数据类型转换。
(b) 带非默认参数的构造函数可以把基本类型数据转换成类类型对象。
(c) 类型转换函数可以把类类型对象转换为其他指定类型对象。
(d) 类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数。
7.2 阅读下列程序,写出执行结果
1.
#include iostream
using namespace std;
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;
tempobj.b = b * obj.b;
tempobj.c = c * obj.c;
return tempobj;
}
int main()
{ T obj1( 1,2,3 ), obj2( 5,5,5 ), obj3;
int a , b , c;
obj3 = obj1 * obj2;
obj3.get( a, b, c );
cout( obj1*obj2 ):
a = a\tb = b\tc = c\tendl;
(obj2*obj3).get( a, b, c );
cout( obj2*obj3 ):
a = a\tb = b\tc = c\tendl;
}
【解答】
( obj1 * obj2 ): a = 5 b = 10 c = 15
( obj2 * obj3 ): a = 25 b = 50 c = 75
2.
#include iostream
using namespace std;
class Vector
{ public:
Vector(){ }
Vector(int i,int j)
{ x = i ; y = j ;
}
friend Vector operator+ ( Vector v1, Vector v2 )
{ Vector tempVector ;
tempVector.x = v1.x + v2.x ;
tempVector.y = v1.y + v2.y ;
return tempVector ;
}
void display()
{ cout ( x , y ) endl ; }
private:
int x , y ;
};
int main()
{ Vector v1( 1, 2 ), v2( 3, 4 ), v3 ;
cout v1 = ;
v1.display() ;
cout v2 = ;
v2.display() ;
v3 = v1 + v2 ;
cout v3 = v1 + v2 = ;
v3.display() ;
}
【解答】
v1 = ( 1, 2 )
v2 = ( 3, 4 )
v3
文档评论(0)