第八讲――多态性专题ppt课件.ppt

第八讲――多态性专题ppt课件.ppt

ID:58679831

大小:210.50 KB

页数:83页

时间:2020-10-05

第八讲――多态性专题ppt课件.ppt_第1页
第八讲――多态性专题ppt课件.ppt_第2页
第八讲――多态性专题ppt课件.ppt_第3页
第八讲――多态性专题ppt课件.ppt_第4页
第八讲――多态性专题ppt课件.ppt_第5页
资源描述:

《第八讲――多态性专题ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多态性专题C++语言程序设计1主要内容多态性概念函数重载运算符重载虚函数纯虚函数抽象类2多态性的概念多态性是面向对象程序设计的重要特征之一。多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。多态的实现形式:函数重载运算符重载虚函数3重载函数的声明C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。例:形参类型不同intadd(intx,inty);floatadd(floatx,floaty);形参个数不同intadd(intx,inty);intadd(intx,inty

2、,intz);一.函数重载4注意事项不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好:intadd(intx,inty);intadd(inta,intb);编译器不以形参名来区分intadd(intx,inty);voidadd(intx,inty);编译器不以返回值来区分intadd(intx,inty){returnx+y;}floatadd(floatx,floaty){returnx-y;}函数重载重载函数的形参必须不同:个数不同或类型不同。编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪

3、一个函数。5例1重载函数应用举例编写三个名为add的重载函数,分别实现两整数相加、两实数相加和两个复数相加的功能。#includeusingnamespacestd;structcomplex{doublereal;doubleimaginary;};函数重载6voidmain(void){intm,n;doublex,y;complexc1,c2,c3;intadd(intm,intn);doubleadd(doublex,doubley);complexadd(complexc1,complexc2);cout

4、<<"Entertwointeger:";cin>>m>>n;cout<<"integer"<>x>>y;cout<<"realnumber"<>c1.real>>c1.imaginary;cout<<"Enterthesecondcomplexnumber:";

5、cin>>c2.real>>c2.imaginary;c3=add(c1,c2);cout<<"complexnumber("<

6、{complexc;c.real=c1.real+c2.real;c.imaginary=c1.imaginary+c2.imaginary;returnc;}99运行结果:Entertwointeger:35integer3+5=8Entertworealnumber:2.35.8realnumber2.3+5.8=8.1Enterthefirstcomplexnumber:12.345.6Enterthesecondcomplexnumber:56.767.8complexnumber(12.3,45.6)+(56.7,67.8)

7、=(69,113.4)1010问题举例——复数的运算classcomplex//复数类声明{public:complex(doubler=0.0,doublei=0.0)//构造函数{real=r;imag=i;}voiddisplay();//显示复数的值private:doublereal;doubleimag;};运算符重载11问题举例——复数的运算用“+”、“-”能够实现复数的加减运算吗?实现复数加减运算的方法 ——重载“+”、“-”运算符运算符重载12运算符重载的实质运算符重载是对已有的运算符赋予多重含义必要性C++中预定义

8、的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)实现机制将指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。编译系统对重载运算符的选择,遵循函数重载的选择原则。运算符重载13

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

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

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