- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                第4章对运算符进行重载分析
                    Time Time::operator++( ) //定义前置 ++重载函数 {   sec++;  //秒加1      if( sec = 60 )      {    sec -= 60;     ++minute;   }       return *this;  //返回自加后的当前对象 } Time Time::operator++(int) //定义后置++重载函数 {           Time  temp(*this);        //调用拷贝构造函数, 保存加1之前的对象       if( ++sec = 60 )       {   sec -= 60;   ++minute;   }       return temp;  //返回的是自加之前的对象 } 此参数只是为了与前置++重载函数有所区别,此外没有任何作用。因此,可以省略形参名! * void main( ) {   Time time1(34, 59), time2;      couttime1:;      time1.display( );      ++time1; //调用前置++重载函数      cout++time1:;      time1.display( );      time2=time1++; //将自加前的对象的值赋给time2      couttime1++:;      time1.display( );      couttime2:;      time2.display( ); //输出time2对象的值 } * 4.7重载流插入运算符和流提取运算符 C++中用“cout”和“cin”对标准类型数据进行输入输出。其中,cin和cout分别是输入流类istream和输出流类ostream的对象。在头文件iostream.h中已经对“”和“”进行了重载,使之作为流插入运算符和流提取运算符。    “”和“”的重载函数只能作为友元函数,重载函数的形式如下:       istream  operator  (istream ,自定义类 );      ostream  operator  (ostream ,自定义类 ); int  a; cina; couta; Complex  c1; cinc1; coutc1; 能否? 可以! 必须对和重载 为了能连续输入。 如cinc1c2; * 例4.8 用“cin”输入复数,用“cout”输出复数。 #include iostream.h class Complex {public:      friend ostream operator (ostream,Complex);      friend istream operator (istream,Complex); private:      double  real; //实部      double  imag;  //虚部 }; * ostream operator  (ostream output, Complex c)  {  output(c.real+c.imagi);     return  output; } istream operator (istream input, Complex c)   { coutinput real part and imaginary part of complex number:;    inputc.realc.imag;    return input; } void main( ) {   Complex  c1, c2;      cinc1c2; //operator(operator(cin, c1), c2 )      coutc1=c1endl;       coutc2=c2endl; } ostream operator  (ostream output, Complex c) { output(c.real;    if(c.imag=0) output+; //虚部为正,前加“+”号    outputc.imagi);//虚部为负,前不加“+”号    return output;   } * 复数的几何表示:z=a+bi    复数的坐标表示:z(a,b)   实部real,虚部imag [ima:g] operator 和运算符名称 之间可以有空格,也可以没有。 return Complex(real+c2.real, imag+c2.imag);调用构造函数建立一个临时对象,将其返回。  第4章  对运算符进行重载 * 第4章  对运算符进行重载 4.1  为什么要对运算符重载 4.2  对运算符重载的方法 
                
原创力文档
                        

文档评论(0)