C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt

C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt

ID:50318789

大小:127.00 KB

页数:44页

时间:2020-03-08

C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt_第1页
C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt_第2页
C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt_第3页
C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt_第4页
C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt_第5页
资源描述:

《C++大学基础教程 教学课件 作者 徐惠民 C++大学基础教程第十章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++大学基础教程第10章运算符重载北京邮电大学电信工程学院计算机技术中心重载运算符可以把C++的运算符扩展到自定义类型和类类型的领域中,使代码更直观、易懂,方便、简洁。第十八章运算符重载10.1运算符重载的需要10.2运算符重载的限制10.3重载运算符的语法10.4重载++和--运算符10.5重载赋值运算符10.6重载转换运算符10.1运算符重载的需要10.1运算符重载的需要目的C++代码更直观,易读,使用更方便。运算符重载的实质运算符重载的实质是函数重载。只不过它重载的是类似“+-*/=“这样的操作符。8/8/20215北京邮电大学电信工程学院计算机技术中心例子:#in

2、cludeusingnamespacestd;voidmain(){chars1[20]=”Hello”;chars2[20]=”world”;chars3[20];strcpy(s3,s1);//字符串拷贝cout<#includeusingnamespacestd;voidmain(){strings1="Hello";strings2="world";strings3;s3=s1;//

3、字符串拷贝cout<

4、符(形参表){函数体;}8/8/202111北京邮电大学电信工程学院计算机技术中心1、重载为类的成员函数1、一元运算符++、--等2、二元运算符+、-、*、/、%、=、+=、-=下面我们以复数Complex类为例,实现运算符的重载。8/8/202112北京邮电大学电信工程学院计算机技术中心classcomplex{public:complex(doublereal=0,doubleimag=0):r(real),i(imag){}complexoperator+(complex&);complexoperator-(complex&);complexoperator+=(c

5、omplex&);voidprint(){cout<

6、返回自己本身voidmain(){complexc1(1,1),c2(3,3),c3;c3=c1+c2;//复数相加c3.print();c3=c1-c2;//复数相减c3.print();c3+=c2+=c1;//复数相加后赋值c3.print();}+4+4i-2-2i+2+2i说明1、二元运算符对象本身*this就是其中的一个操作数,另一个操作数由形参给出,通过运算符重载的函数进行传递;2、一元运算符操作数由对象的this指针给出,就不再需要形参了。一般来说,运算结果的类型与操作数的类型一致8/8/202116北京邮电大学电信工程学院计算机技术中心说明在重载复数“+=

7、”运算符时,return语句中的表达式是*this,而其他运算符函数的return语句的表达式是一个临时对象complex(r-c.r,i-c.i)。其实,将return*this改为返回一个临时对象returncomplex(r,i)结果是一样的,只是建立临时对象还要调用构造函数。返回*this对象就不需要调用构造函数了,执行效率可以提高。8/8/202117北京邮电大学电信工程学院计算机技术中心2、重载为类的友元函数运算符也可以重载为友元函数,这时运算所需要的操作数都需要通过形参来传递,形参从左到右的顺序就是运

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

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

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