第4章对运算符进行重载分析.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档