第11讲 运算符重载和string类.ppt第十一讲运算符重载和string类第十一讲运算符重载运算符重载的概念运算符重载的方式:重载为类的成员函数重载为类的友元函数运算符重载的限制string类构造函数成员函数运算符C++plex,包括完成两个复数相加的成员函数Add。(cw1101)运算符重载#include<>plex{private:doubler;//实部doublei;//plex(doublex=,doubley=){r=x;i=y;}ComplexAdd(plex&c);voidPrint();};plex::Add(plex&c){Complext;=r+;=i+;returnt;}plex::Print(){cout<<"("<<r<<","<<i<<")"<<endl;}4引例案例分析续运算符重载voidmain(){Complexa(,),b(,),c;c=(b);();}能不能实现同样的功能,但写成:a+b对运算符+进行重载,使得+可以用于用户自定义的类型。5运算符重载运算符的重载与函数重载的方法一致,是一种特殊的函数重载。在类中可以使用两种方法对运算符进行重载:重载为类的成员函数重载为类的友元函数运算符重载6运算符重载运算符重载为类的成员函数语法格式operator是关键字。@是要被重载的运算符。operator@共同组成该运算符函数的名称。X是需要重载该运算符的类。TYPE是该运算符函数的返回值类型。运算符重载TYPEX::operator@(形参表){//重新定义运算符@在类X中的功能}7运算符重载案例分析:plex类中定义重载运算符+的函数。(cw1102)运算符重载#include<>plex{private:doubler;//实部doublei;//plexoperator+(plex&c);Complexoperator+(doubled);……};8运算符重载案例分析:plex::operator+(plex&c){Complext;=r+;=i+;returnt;}plex::operator+(doubled){Complext;=r+d;=i;returnt;}9运算符重载案例分析:运算符重载为类的成员函数续运算符重载voidmain(){Complexa(,),b(,),c,d,e;c=(b);d=a+b;e=a+;d=+(b);e=+();();();();}运算符左侧的对象是调用对象,plexoperator+(plex&c);Complexoperator+(doubled);但是,+a是不正确的!10
第11讲 运算符重载和string类 来自淘豆网m.daumloan.com转载请标明出处.