欢迎来到天天文库
浏览记录
ID:6592125
大小:169.50 KB
页数:21页
时间:2018-01-19
《实验4 运算符重载参考答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、运算符重载1、实验目的和要求:掌握运算符重载的语法要点,学会运算符重载的编程方法。2、实验内容(1)先读程序,写出程序的输出结果,再运行程序验证程序的输出。用友元重载方式重新编写程序。#includeusingnamespacestd;classVector{public:Vector(inti=0,intj=0){x=i;y=j;}Vectoroperator+=(Vectorv){Vectortemp;temp.x=x+v.x;temp.y=y+v.y;returntemp;}Vectoroperator-=(Vectorv)
2、{Vectortemp(x-v.x,y-v.y);returntemp;}voiddisplay(){cout<<"("<3、2,-2}用友元方式实现:#includeusingnamespacestd;classVector{public:Vector(inti=0,intj=0){x=i;y=j;}friendVectoroperator+=(Vector&v1,Vector&v2){v1.x+=v2.x;v1.y+=v2.y;returnv1;}friendVectoroperator-=(Vector&v1,Vector&v2){v1.x=v1.x-v2.x;v1.y=v1.y-v2.y;returnVector(v1.x,v1.y);}void4、display(){cout<<"("<5、试各种运算符的使用,要求输出化简后的计算结果,注意分母不能为零!测试代码样例:RationalA(2,6),B(1,-2),C;C=-A;C.print();//输出1/3C=A+B;C.print();//输出-1/6C=C*A/B;C.print();C=++A;A.print;C.print();C=B--;B.print;C.print();源程序:#includeclassRational{public:Rational(intnn=1,intmm=1);voidprint();voidsimple();Ration6、aloperator+(Rational&a);//加法friendRationaloperator-(Rational&a,Rational&b);//减法friendRationaloperator*(Rational&a,Rational&b);//乘法friendRationaloperator/(Rational&a,Rational&b);//除法Rationaloperator-();//取反Rational&operator++();//r=++r1Rationaloperator++(int);//r=r1++Rational&op7、erator--();//r=--r1Rationaloperator--(int);//r=r1--operatordouble();friendostream&operator<<(ostream&output,Rational&a);booloperator<(Rational&);friendbooloperator==(Rational&,Rational&);private:intm;//分母intn;//分子};Rational::Rational(intnn,intmm){m=(mm!=0)?mm:1;n=nn;}//r=r1+r2;8、RationalRational::operator+(Rational&A){RationalC;C.n=
3、2,-2}用友元方式实现:#includeusingnamespacestd;classVector{public:Vector(inti=0,intj=0){x=i;y=j;}friendVectoroperator+=(Vector&v1,Vector&v2){v1.x+=v2.x;v1.y+=v2.y;returnv1;}friendVectoroperator-=(Vector&v1,Vector&v2){v1.x=v1.x-v2.x;v1.y=v1.y-v2.y;returnVector(v1.x,v1.y);}void
4、display(){cout<<"("<5、试各种运算符的使用,要求输出化简后的计算结果,注意分母不能为零!测试代码样例:RationalA(2,6),B(1,-2),C;C=-A;C.print();//输出1/3C=A+B;C.print();//输出-1/6C=C*A/B;C.print();C=++A;A.print;C.print();C=B--;B.print;C.print();源程序:#includeclassRational{public:Rational(intnn=1,intmm=1);voidprint();voidsimple();Ration6、aloperator+(Rational&a);//加法friendRationaloperator-(Rational&a,Rational&b);//减法friendRationaloperator*(Rational&a,Rational&b);//乘法friendRationaloperator/(Rational&a,Rational&b);//除法Rationaloperator-();//取反Rational&operator++();//r=++r1Rationaloperator++(int);//r=r1++Rational&op7、erator--();//r=--r1Rationaloperator--(int);//r=r1--operatordouble();friendostream&operator<<(ostream&output,Rational&a);booloperator<(Rational&);friendbooloperator==(Rational&,Rational&);private:intm;//分母intn;//分子};Rational::Rational(intnn,intmm){m=(mm!=0)?mm:1;n=nn;}//r=r1+r2;8、RationalRational::operator+(Rational&A){RationalC;C.n=
5、试各种运算符的使用,要求输出化简后的计算结果,注意分母不能为零!测试代码样例:RationalA(2,6),B(1,-2),C;C=-A;C.print();//输出1/3C=A+B;C.print();//输出-1/6C=C*A/B;C.print();C=++A;A.print;C.print();C=B--;B.print;C.print();源程序:#includeclassRational{public:Rational(intnn=1,intmm=1);voidprint();voidsimple();Ration
6、aloperator+(Rational&a);//加法friendRationaloperator-(Rational&a,Rational&b);//减法friendRationaloperator*(Rational&a,Rational&b);//乘法friendRationaloperator/(Rational&a,Rational&b);//除法Rationaloperator-();//取反Rational&operator++();//r=++r1Rationaloperator++(int);//r=r1++Rational&op
7、erator--();//r=--r1Rationaloperator--(int);//r=r1--operatordouble();friendostream&operator<<(ostream&output,Rational&a);booloperator<(Rational&);friendbooloperator==(Rational&,Rational&);private:intm;//分母intn;//分子};Rational::Rational(intnn,intmm){m=(mm!=0)?mm:1;n=nn;}//r=r1+r2;
8、RationalRational::operator+(Rational&A){RationalC;C.n=
此文档下载收益归作者所有