资源描述:
《实验11运算符重载》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验11运算符重载(1)一、实验目的1、掌握运算符重载的概念;2、掌握使用friend重载运算符的方法。二、实验内容1、用成员函数重载运算符,使对整型的运算符=、+、-、*、/适用于分数运算。要求:(1)输出结果是最简分数(可以是带分数);(2)分母为1,只输出分子。2、用友元函数重载运算符,使对整型的运算符二、+、-、*、/适用于分数运算。3、定义如下集合类的成员函数,并用数据进行测试:classSetint*elem;//存放集合元素的指针intcount;//存放集合中的元素个数public:Set();Set(ints[],intn);intfind(intx)
2、const;//判断x是否在集合中Setoperator+(constSet&);//集合的并集Setoperator-(constSet&);//集合的差集Setoperator*(constSet&);//集合的交集voiddispO;//输出集合元素};4、定义一个人民币类RUB,包含私有数据成员元、角、分,请用友元函数重载运算符“+”和“++”,以对类对象进行运算。三、实验程序及结果1.#includeusingnamespacestd;classComplex}public:Complex(intX=0,intY=0){x=X;y=Y;}v
3、oidgys(){intt;t=x%y;while(t!=l){x=y;y=t;t=x%y;}}voidprint(){intz;if((xy)&&(y!=l))〃构造函数初始化〃求最大公约数〃输出分数值〃分母大于分子直接输出〃分母小于分子输出带分数z=x/y;cout«z«H(,,«x%y«7,,«y«H),,«endl;Complexoperator+(Complexc);〃声明运算符重载函数Complexoperator-(Complexc);Complexoperator*(Comple
4、xc);Complexoperator/(Complexc);private:intx,y;};ComplexComplex::operator+(Complexc)〃定义+重载函数{Complextempi;if(y!=c.y)templ.y=y*c.y;templ.x=x*c.y+c.x*y;}returntempi;}ComplexComplex::operator-(Complexc){Complextempi;if(y!=c.y){templ.y=y*c.y;templ.x=x*c.y-c.x*y;}returntempi;}ComplexComplex::o
5、perator*(Complexc){Complextempi;if(y!=c.y){templ.y=y*c.y;templ.x=x*c.x;}returntempi;}ComplexComplex::operator/(Complexc){Complextempi;if(y!=c.y){templ.y=y*c.x;templ.x=x*c.y;}returntempi;)intmain(){ComplexA1(3,2),A2(5,7),A3,A4,A5,A6;Al.print();A2.print();〃定义■重载函数〃定义*重载函数〃定义/重载两数〃定义六个类的对象〃
6、输出分数A3二A1+A2;A3.print();A4=A1-A2;A4.print();A5=A1*A2;A5.print();A6=A1/A2;A6.print();return0;〃分数相加〃分数相减〃分数相乘〃分数相除2.(注释同上)#include//usingnamespacestd;classComplex)public:Complex(intX=O,intY=0){x=X;y=Y;}voidgys(){intt;t=x%y;while(t!=l)x=y;y=t;t=x%y;voidprint(){intz;if((xvy)&&(y!
7、=l)){cout«x«M/H«y«endl;}if((x>y)&&(y!=l)){z=x/y;cout«z«H(,,«x%y«7,,«y«,,),,«endl;friendComplexoperator+(Complex&a,Complex&b);friendComplexoperator-(Complex&a,Complex&b);friendComplexoperator*(Complex&a,Complex&b);friendComplexoperator/(Complex&a,Complex&b);private:intx,y;