欢迎来到天天文库
浏览记录
ID:11380759
大小:124.00 KB
页数:13页
时间:2018-07-11
《实验11 运算符重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验11运算符重载(1)一、实验目的1、掌握运算符重载的概念;2、掌握使用friend重载运算符的方法。二、实验内容1、用成员函数重载运算符,使对整型的运算符=、+、-、*、/适用于分数运算。要求:(1)输出结果是最简分数(可以是带分数);(2)分母为1,只输出分子。2、用友元函数重载运算符,使对整型的运算符=、+、-、*、/适用于分数运算。3、定义如下集合类的成员函数,并用数据进行测试:classSet{int*elem;//存放集合元素的指针intcount;//存放集合中的元素个数public:Set();Set(
2、ints[],intn);intfind(intx)const;//判断x是否在集合中Setoperator+(constSet&);//集合的并集Setoperator-(constSet&);//集合的差集Setoperator*(constSet&);//集合的交集voiddisp();//输出集合元素};4、定义一个人民币类RMB,包含私有数据成员元、角、分,请用友元函数重载运算符“+”和“++”,以对类对象进行运算。三、实验程序及结果1.#includeusingnamespacestd;c
3、lassComplex{public:Complex(intX=0,intY=0)//构造函数初始化{x=X;y=Y;}voidgys()//求最大公约数{intt;t=x%y;while(t!=1){x=y;y=t;t=x%y;}}voidprint()//输出分数值{intz;if((xy)&&(y!=1))//分母小于分子输出带分数{z=x/y;cout<4、endl;}}Complexoperator+(Complexc);//声明运算符重载函数Complexoperator-(Complexc);Complexoperator*(Complexc);Complexoperator/(Complexc);private:intx,y;};ComplexComplex::operator+(Complexc)//定义+重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.y;temp1.x=x*c.y+c.x*y;}returntemp1;}Com5、plexComplex::operator-(Complexc)//定义-重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.y;temp1.x=x*c.y-c.x*y;}returntemp1;}ComplexComplex::operator*(Complexc)//定义*重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.y;temp1.x=x*c.x;}returntemp1;}ComplexComplex::operator/(Complexc)//定6、义/重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.x;temp1.x=x*c.y;}returntemp1;}intmain(){ComplexA1(3,2),A2(5,7),A3,A4,A5,A6;//定义六个类的对象A1.print();//输出分数A2.print();A3=A1+A2;//分数相加A3.print();A4=A1-A2;//分数相减A4.print();A5=A1*A2;//分数相乘A5.print();A6=A1/A2;//分数相除A6.print();ret7、urn0;}2.(注释同上)#include//usingnamespacestd;classComplex{public:Complex(intX=0,intY=0){x=X;y=Y;}voidgys(){intt;t=x%y;while(t!=1){x=y;y=t;t=x%y;}}voidprint(){intz;if((xy)&&(y!=1)){z=x/y;cout<8、<")"<
4、endl;}}Complexoperator+(Complexc);//声明运算符重载函数Complexoperator-(Complexc);Complexoperator*(Complexc);Complexoperator/(Complexc);private:intx,y;};ComplexComplex::operator+(Complexc)//定义+重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.y;temp1.x=x*c.y+c.x*y;}returntemp1;}Com
5、plexComplex::operator-(Complexc)//定义-重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.y;temp1.x=x*c.y-c.x*y;}returntemp1;}ComplexComplex::operator*(Complexc)//定义*重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.y;temp1.x=x*c.x;}returntemp1;}ComplexComplex::operator/(Complexc)//定
6、义/重载函数{Complextemp1;if(y!=c.y){temp1.y=y*c.x;temp1.x=x*c.y;}returntemp1;}intmain(){ComplexA1(3,2),A2(5,7),A3,A4,A5,A6;//定义六个类的对象A1.print();//输出分数A2.print();A3=A1+A2;//分数相加A3.print();A4=A1-A2;//分数相减A4.print();A5=A1*A2;//分数相乘A5.print();A6=A1/A2;//分数相除A6.print();ret
7、urn0;}2.(注释同上)#include//usingnamespacestd;classComplex{public:Complex(intX=0,intY=0){x=X;y=Y;}voidgys(){intt;t=x%y;while(t!=1){x=y;y=t;t=x%y;}}voidprint(){intz;if((xy)&&(y!=1)){z=x/y;cout<8、<")"<
8、<")"<
此文档下载收益归作者所有