欢迎来到天天文库
浏览记录
ID:37503342
大小:101.03 KB
页数:8页
时间:2019-05-24
《C++类重载算数关系操作符1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C++类重载算数关系操作符学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。本来是可以一讲就把重载全部讲完的,因为昨天太晚了,很困,所以就只讲了重载输入输出操作符,今天概念性的东西就不说了,直接看上一讲的《浅谈C++类(8)--重载输入输出操作符》吧,今天就补充一下其他的操作符的重载,其实都差不多,不过我感觉自己实际输入调试过后和没有调试只懂概念有个印象是完全不一样的。我一次把除了下标和成员访问操作符以外的操作符都写在下面这个例子里面,你自己分析和调试吧,我在主程序里面只调试了一部分。
2、例9.0:#include#includeusingnamespacestd;classFruit//定义一个类,名字叫Fruit{doubleprice;//定义一个price成员表示价格doubleweight;//定义一个weight成员表示重量stringcolour;//定义一个colour成员表示颜色stringname;//定义一个name成员表示名字doubleconValue;//定义一个conValue成员表示总价值public:friendistream&ope
3、rator》(istream&,Fruit&);//重载输入操作符friendostream&operator《(ostream&,constFruit&);//重载输出操作符Fruit&operator+=(constFruit&orig)//重载复合加法操作符,行为不知道怎么定义好,所以比较奇怪{if(name!=orig.name){name=name+"mix"+orig.name;}if(colour!=orig.colour){colour=colour+"mix"+orig.colour;}weight+
4、=orig.weight;conValue+=orig.conValue;price=conValue/weight;return*this;}friendFruitoperator+(constFruit&lf,constFruit&rf);//重载加法操作符,必须要用友元,因为有两个操作数Fruit&operator=(Fruit&orig)//重载赋值操作符{name=orig.name;colour=orig.colour;price=orig.price;weight=orig.weight;conValue
5、=orig.conValue;return*this;}booloperator==(constFruit&orig)//重载相等操作符{returnconValue==orig.conValue;}booloperator!=(constFruit&orig)//重载不等操作符{return!(*this==orig);}booloperator<(constFruit&orig)//重载小于操作符{returnconValue(constFruit&orig
6、)//重载大于操作符{returnconValue>orig.conValue;}booloperator<=(constFruit&orig)//重载小于等于操作符{return*this7、8、*this==orig;}booloperator>=(constFruit&orig)//重载大于等于操作符{return*this>orig9、10、*this==orig;}voidprint()//定义一个输出的成员print(){cout《weight《"kilogram"《colour《""《name《"wort11、h"《conValue《"yuan."《endl;}Fruit(constdouble&dp,constdouble&dw,conststring&cst="green",conststring&nst="apple"):price(dp),weight(dw),colour(cst),name(nst)//构造函数{conValue=price*weight;}Fruit(constFruit&orig)//定义一个复制构造函数{name=orig.name;colour=orig.colour;price=orig12、.price;weight=orig.weight;conValue=orig.conValue;}~Fruit()//析构函数不需要定义,用系统的就好了{}};ostream&operator《(ostream&out,constFruit&s){cout《s.weight《"kilogram"《s.colour《""《s.na
7、
8、*this==orig;}booloperator>=(constFruit&orig)//重载大于等于操作符{return*this>orig
9、
10、*this==orig;}voidprint()//定义一个输出的成员print(){cout《weight《"kilogram"《colour《""《name《"wort
11、h"《conValue《"yuan."《endl;}Fruit(constdouble&dp,constdouble&dw,conststring&cst="green",conststring&nst="apple"):price(dp),weight(dw),colour(cst),name(nst)//构造函数{conValue=price*weight;}Fruit(constFruit&orig)//定义一个复制构造函数{name=orig.name;colour=orig.colour;price=orig
12、.price;weight=orig.weight;conValue=orig.conValue;}~Fruit()//析构函数不需要定义,用系统的就好了{}};ostream&operator《(ostream&out,constFruit&s){cout《s.weight《"kilogram"《s.colour《""《s.na
此文档下载收益归作者所有