面向对象编程技术第八章.ppt

面向对象编程技术第八章.ppt

ID:51588455

大小:520.00 KB

页数:47页

时间:2020-03-24

面向对象编程技术第八章.ppt_第1页
面向对象编程技术第八章.ppt_第2页
面向对象编程技术第八章.ppt_第3页
面向对象编程技术第八章.ppt_第4页
面向对象编程技术第八章.ppt_第5页
资源描述:

《面向对象编程技术第八章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章多态问题的提出多态在本章的表现形式总结与建议去工作吧去工作吧去工作吧去工作吧头说:大家去工作吧1.多态定义:不同类型的对象接收同样的消息产生不同的行为2.现实需要多态;面向对象需要多态:它以归整划一的方式在特定时刻处理多个类型不同的对象返回运算符重载虚函数抽象类-纯虚函数多态在本章主要的表现形式返回运算符重载设计思想运算符重载的基本形式运算符重载的实例注意事项返回运算符重载设计思想扩展系统已有运算符的功能,能处理自定义数据类型定义与特定运算符同名的函数此函数与类相关联(成员或友元)以函数处理特定的自定义

2、数据类型C++系统通过函数重载的方式来定位、执行此特殊函数返回运算符重载分类运算符重载按载体类的成员函数类的友元函数按对象个数重载单目运算符:前置与后置重载双目运算符返回可以重载为普通函数吗?看完所有例子再回答,呵呵!重载分类之一重载为类成员函数参数个数=原操作数个数-1(后置++、--除外)重载为友元函数参数个数=原操作数个数,且至少应该有一个自定义类型的形参要理解参数个数的原因格式重载为类成员函数格式:函数类型operator运算符(形参){......}重载为友元函数格式friendly函数类型oper

3、ator运算符(形参){......}返回Operator:重载关键字重载分类之二单目运算符前置单目运算符:Uoprd无形参,表达式Uoprd相当于oprd.operatorU()后置单目运算符oprdU有一个int类型形参表达式oprd++相当于oprd.operator++(0)oprd为特定的对象重载分类之二oprd1、oprd2为特定类的对象双目运算符B:重载后:表达式oprd1Boprd2相当于oprd1.operatorB(oprd2)返回重载举例1-用“+”、“-”能够实现复数的加减运算clas

4、scomplex{public:complex(doubler=0.0,doublei=0.0){real=r;imag=i;}friendcomplexoperator+(complexc1,complexc2);//重载为友元函数complexoperator-(complexc1);//重载为成员函数voiddisplay();//显示复数的值private://私有数据成员doublereal;doubleimag;};跳回complexoperator+(complexc1,complexc2)//

5、运算符重载友元函数实现{returncomplex(c2.real+c1.real,c2.imag+c1.imag);}complexcomplex::operator-(complexc1)//运算符重载成员函数实现{returncomplex(real-c1.real,imag-c1.imag);}voidcomplex::display(){cout<<"("<

6、xc1(5,4),c2(2,10),c3;//声明复数类的对象cout<<"c1=";c1.display();cout<<"c2=";c2.display();c3=c1-c2;//使用重载运算符完成复数减法cout<<"c3=c1-c2=";c3.display();c3=c1+c2;//使用重载运算符完成复数加法cout<<"c3=c1+c2=";c3.display();}程序运行结果:c1=(5,4)c2=(2,10)c3=c1-c2=(3,-6)c3=c1+c2=(7,14)请看一个对此例改装的例

7、子补充例子#include"iostream.h"structcomplex{doublereal;doubleimag;//friendcomplexoperator+(complexc1,complexc2);};//complexoperator+(complexc1,complexc2);//重载为友元函数complexoperator+(complexc1,complexc2){complexc3;c3.imag=c1.imag+c2.imag;c3.real=c1.real+c2.real;ret

8、urnc3;}voidmain()//主函数{complexc1,c2,c3;//声明复数结构体变量c1.imag=1;c2.imag=2;c1.real=3;c2.real=4;c3=c1+c2;//使用重载运算符完成复数加法cout<<"c3=c1+c2"<

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

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

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