欢迎来到天天文库
浏览记录
ID:38703581
大小:72.50 KB
页数:11页
时间:2019-06-17
《《面向对象程序设计Ⅱ》期末复习资料4》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《面向对象程序设计Ⅱ》期末复习资料之四:运算符重载专项练习《面向对象程序设计Ⅱ》期末复习资料之四:运算符重载一、选择题1.在下列运算符中,不能重载的是()。(B)A.!B.sizeofC.newD.delete2.下列关于运算符重载的描述中,()是正确的。(D)A.可以改变参与运算的操作数个数B.可以改变运算符原来的优先级C.可以改变运算符原来的结合性D.不能改变原运算符的语义3.下列函数中,不能重载运算符的函数是()。(B)A.成员函数B.构造函数C.普通函数D.友员函数4.不能用友员函数重载的是()。(A)A.=B.==C.<=D.++5.下面关于类型转换的描述中
2、,错误的是()。(B)A.构造函数可以把一种类类型对象转换成另一种类类型对象B.构造函数可以把一种类类型对象转换成基本类型对象C.类型转换函数可以把类类型对象转换为其他指定类型对象D.类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数二、阅读下列程序,写出执行结果1.#includeclassT{public:T(){a=0;b=0;c=0;}T(inti,intj,intk){a=i;b=j;c=k;}voidget(int&i,int&j,int&k){i=a;j=b;k=c;}Toperator*(Tobj);private:
3、inta,b,c;};TT::operator*(Tobj){Ttempobj;tempobj.a=a*obj.a;tempobj.b=b*obj.b;11《面向对象程序设计Ⅱ》期末复习资料之四:运算符重载专项练习tempobj.c=c*obj.c;returntempobj;}voidmain(){Tobj1(1,2,3),obj2(5,5,5),obj3;inta,b,c;obj3=obj1*obj2;obj3.get(a,b,c);cout<<"(obj1*obj2):t"<<"a="<4、'<classVector{public:Vector(){}Vector(inti,intj){x=i;y=j;}friendVectoroperator+(Vectorv1,Vectorv2){VectortempV5、ector;tempVector.x=v1.x+v2.x;tempVector.y=v1.y+v2.y;returntempVector;}voiddisplay(){cout<<"("<6、y();}参考答案v1=(1,2)v2=(3,4)v3=v1+v2=(4,6)三、综合编程题1.分别使用成员函数和友员函数编程序重载运算符“+”,使该运算符能实现两个字符串的连接。参考答案(1)使用成员函数#include#includeclassstring{public:string(){*str=' ';}string(char*pstr){strcpy(str,pstr);}char*gets(){returnstr;}stringoperator+(stringobj);private:charstr[100];7、};stringstring::operator+(stringobj){strcat(str,obj.str);returnstr;//或return*this;}voidmain(){stringobj1("Visual"),obj2("C++"),obj3;obj3=obj1+obj2;cout<11《面向对象程序设计Ⅱ》期末复习资料之四:运算符重载专项练习#includeclassstring{public:string(){
4、'<classVector{public:Vector(){}Vector(inti,intj){x=i;y=j;}friendVectoroperator+(Vectorv1,Vectorv2){VectortempV
5、ector;tempVector.x=v1.x+v2.x;tempVector.y=v1.y+v2.y;returntempVector;}voiddisplay(){cout<<"("<6、y();}参考答案v1=(1,2)v2=(3,4)v3=v1+v2=(4,6)三、综合编程题1.分别使用成员函数和友员函数编程序重载运算符“+”,使该运算符能实现两个字符串的连接。参考答案(1)使用成员函数#include#includeclassstring{public:string(){*str=' ';}string(char*pstr){strcpy(str,pstr);}char*gets(){returnstr;}stringoperator+(stringobj);private:charstr[100];7、};stringstring::operator+(stringobj){strcat(str,obj.str);returnstr;//或return*this;}voidmain(){stringobj1("Visual"),obj2("C++"),obj3;obj3=obj1+obj2;cout<11《面向对象程序设计Ⅱ》期末复习资料之四:运算符重载专项练习#includeclassstring{public:string(){
6、y();}参考答案v1=(1,2)v2=(3,4)v3=v1+v2=(4,6)三、综合编程题1.分别使用成员函数和友员函数编程序重载运算符“+”,使该运算符能实现两个字符串的连接。参考答案(1)使用成员函数#include#includeclassstring{public:string(){*str=' ';}string(char*pstr){strcpy(str,pstr);}char*gets(){returnstr;}stringoperator+(stringobj);private:charstr[100];
7、};stringstring::operator+(stringobj){strcat(str,obj.str);returnstr;//或return*this;}voidmain(){stringobj1("Visual"),obj2("C++"),obj3;obj3=obj1+obj2;cout<11《面向对象程序设计Ⅱ》期末复习资料之四:运算符重载专项练习#includeclassstring{public:string(){
此文档下载收益归作者所有