大学基础教程第十一章.ppt

大学基础教程第十一章.ppt

ID:56529658

大小:271.50 KB

页数:51页

时间:2020-06-27

大学基础教程第十一章.ppt_第1页
大学基础教程第十一章.ppt_第2页
大学基础教程第十一章.ppt_第3页
大学基础教程第十一章.ppt_第4页
大学基础教程第十一章.ppt_第5页
资源描述:

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

1、C++大学基础教程第11章多态性2021/7/281多态性(Polymorphism)是面向对象程序设计的主要特征之一。多态性对于软件功能的扩展和软件重用都有重要的作用。2021/7/282第十一章多态性11.1多态性的概念11.2继承中的静态联编11.3虚函数和运行时的多态11.4纯虚函数和抽象类11.5继承和派生的应用11.6模板2021/7/28311.1多态性的概念2021/7/28411.1.1面向对象程序设计中多态的表现不同对象对于相同的消息有不同的响应,就是面向对象程序设计中的多态性两种表现方式:同一个对象调用名字相同、但

2、是参数不同的函数,表现出不同的行为。在同一个类中定义的重载函数的调用,属于这种情况。不同的对象调用名字和参数都相同的函数,表现出不同的行为。在派生类的应用中,经常会看到这样的调用。2021/7/28511.1.2多态的实现:联编一个具有多态性的程序语句,在执行的时候,必须确定究竟是调用哪一个函数多态性的语句究竟调用哪个函数的过程称为联编(Binding),有的资料也翻译成“绑定”。2021/7/28611.1.2多态的实现:联编联编有两种方式:静态联编和动态联编在源程序编译的时候就能确定调用哪个函数,称为静态联编对于重载函数的调用就是在

3、编译的时候确定具体调用哪个函数,所以是属于静态联编2021/7/28711.1.2多态的实现:联编动态联编:必须在程序运行时,才能够确定具有多态性的语句究竟调用哪个函数用动态联编实现的多态,也称为运行时的多态。2021/7/28811.2继承中的静态联编2021/7/28911.2.1派生类对象调用同名函数在派生类中可以定义和基类中同名的成员函数这是对基类进行改造,为派生类增加新的行为的一种常用的方法通过不同的派生类的对象,调用这些同名的成员函数实现不同的操作,是多态性的一种在程序编译的时候,就可以确定对象具体调用哪个成员函数___静态

4、联编2021/7/2810例11.1定义Circle类和Rectangle类为Shape类的派生类,通过Circle类和Rectangle类的对象调用同名函数getArea()显示对象的面积。//例11.1:shape.h#ifndefSHAPE_H#defineSHAPE_HclassShape{public:doublegetArea()const;voidprint()const;};//Shape类定义结束基类Shape的定义2021/7/2811classCircle:publicShape{public:Circle(int

5、=0,int=0,double=0.0);doublegetArea()const;//返回面积voidprint()const;//输出Circle类对象tprivate:intx,y;//圆心座标doubleradius;//圆半径};//派生类Circle定义结束classRectangle:publicShape{public:Rectangle(int=0,int=0);//构造函数doublegetArea()const;//返回面积voidprint()const;//输出Rectangle类对象private:inta,

6、b;//矩形的长和宽};//派生类Rectangle定义结束#endif派生类Circle的定义派生类Rectangle的定义2021/7/2812//例11.1:shape.cpp#includeusingnamespacestd;#include"shape.h"doubleShape::getArea()const{cout<<"基类的getArea函数,面积是";return0.0;}//Shape类getArea函数的定义voidShape::print()const{cout<<"BaseclassObj

7、ect"<

8、Circle::print()const{cout<<"centeris";cout<<"x="<

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

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

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