第11讲 运算符重载和string类

第11讲 运算符重载和string类

ID:20515991

大小:130.50 KB

页数:20页

时间:2018-10-13

第11讲 运算符重载和string类_第1页
第11讲 运算符重载和string类_第2页
第11讲 运算符重载和string类_第3页
第11讲 运算符重载和string类_第4页
第11讲 运算符重载和string类_第5页
资源描述:

《第11讲 运算符重载和string类》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一讲运算符重载和string类第十一讲运算符重载运算符重载的概念运算符重载的方式:重载为类的成员函数重载为类的友元函数运算符重载的限制string类构造函数成员函数运算符C++语言程序设计2引例案例分析定义表示复数的类Complex,包括完成两个复数相加的成员函数Add。(cw1101)运算符重载#includeclassComplex{private:doubler;//实部doublei;//虚部public:Complex(doublex=0.0,doubley=0.0){r=x;i=y;}ComplexAdd(constCom

2、plex&c);voidPrint();};3引例案例分析续运算符重载ComplexComplex::Add(constComplex&c){Complext;t.r=r+c.r;t.i=i+c.i;returnt;}voidComplex::Print(){cout<<"("<

3、型。5运算符重载运算符的重载与函数重载的方法一致,是一种特殊的函数重载。在类中可以使用两种方法对运算符进行重载:重载为类的成员函数重载为类的友元函数运算符重载6运算符重载运算符重载为类的成员函数语法格式operator是关键字。@是要被重载的运算符。operator@共同组成该运算符函数的名称。X是需要重载该运算符的类。TYPE是该运算符函数的返回值类型。运算符重载TYPEX::operator@(形参表){//重新定义运算符@在类X中的功能}7运算符重载案例分析:运算符重载为类的成员函数在Complex类中定义重载运算符+的函数。(cw1102)运算符重载#i

4、ncludeclassComplex{private:doubler;//实部doublei;//虚部public:Complexoperator+(constComplex&c);Complexoperator+(doubled);……};8运算符重载案例分析:运算符重载为类的成员函数续运算符重载ComplexComplex::operator+(constComplex&c){Complext;t.r=r+c.r;t.i=i+c.i;returnt;}ComplexComplex::operator+(doubled){Complex

5、t;t.r=r+d;t.i=i;returnt;}9运算符重载案例分析:运算符重载为类的成员函数续运算符重载voidmain(){Complexa(3.0,4.0),b(10.5,20.5),c,d,e;c=a.Add(b);d=a+b;e=a+10.5;d=a.operator+(b);e=a.operator+(10.5);c.Print();d.Print();e.Print();}运算符左侧的对象是调用对象,右侧的对象是函数参数。Complexoperator+(constComplex&c);Complexoperator+(doubled);但是,表

6、达式10.5+a是不正确的!10运算符重载运算符重载为类的友元函数语法格式对于双目运算符,形参表中有两个参数。对于单目运算符,形参表中有一个参数。案例分析:运算符重载为类的友元函数在Complex中定义友元函数重载运算符+。(cw1103)运算符重载friendTYPEoperator@(形参表);classComplex{public:friendComplexoperator+(doubled,constComplex&c);……};11运算符重载案例分析:运算符重载为类的友元函数续运算符重载Complexoperator+(doubled,constCom

7、plex&c){Complext;t.r=d+c.r;t.i=c.i;returnt;}voidmain(){Complexa(3.0,4.0),b(10.5,20.5),c,d,e;e=10.5+a;……}12运算符重载运算符重载的限制大部分C++运算符可以被重载,除了下面的运算符:“.”、“.*”、“::”、“?:”等不能定义新的运算符。例如,operator**()。运算符的重载既不会改变原运算符的优先级和结合性,也不会改变使用运算符的语法和参数个数。当重载为类的成员函数时,运算符重载函数的形参个数要比运算符操作数个数少一个;若重载为友元函数,则参数个数与

8、操作数个数相同。下面的运

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。