C++课件教学作者邱志杰第四章_继承与派生.ppt

C++课件教学作者邱志杰第四章_继承与派生.ppt

ID:51617169

大小:1.38 MB

页数:63页

时间:2020-03-26

C++课件教学作者邱志杰第四章_继承与派生.ppt_第1页
C++课件教学作者邱志杰第四章_继承与派生.ppt_第2页
C++课件教学作者邱志杰第四章_继承与派生.ppt_第3页
C++课件教学作者邱志杰第四章_继承与派生.ppt_第4页
C++课件教学作者邱志杰第四章_继承与派生.ppt_第5页
资源描述:

《C++课件教学作者邱志杰第四章_继承与派生.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章继承与派生丘志杰电子科技大学计算机学院2021/7/242派生类的引入C++的类提供了良好的模块分解技术,也具有可重用软件所期望的品质:它们是相似一致的模块,通过信息隐藏,将它们的接口和实现清楚地分开来。我们还希望在类的基础上能取得更好的可重用性和可扩充性的目标。面向对象的继承技术提供了实现上述目标的有力手段。现实中的继承与派生自然界中继承的概念非常普遍。哺乳动物猫、狗都属于哺乳动物,具备胎生、哺乳、恒温等特征,但又具有各自的特性。2021/7/244再来看一个现实世界中的例子:RectangleSquareDiamondPar

2、allelogramQuadrangle四边形是一个基本概念,矩形、正方形、菱形和平行四边形都属于四边形,它们继承了四边形的所有属性,但又扩充了各自的特性。2021/7/245从上面的例子可以看出:派生:而且子代可以拥有父代没有的特性,这是可扩充的概念。继承:一旦指定了某种事物父代的本质特征,那么它的子代将会自动具有那些性质。这就是一种朴素的可重用的概念。2021/7/246从软件设计的角度来看:基于已有的类,可以建立新的类。这个新的类既重用已有类的功能,又扩展了新的功能。类是某类事物共同特性的体现,它对外提供了特定的功能。继承定义了

3、类如何相互关联,共享特性。2021/7/247C++的继承关系继承就是在一个已经存在的类的基础上建立另一个新的类。基类派生类已存在的类称为“基类”或“父类”,新建立的类称为“派生类”或“子类”,如图所示:2021/7/248单继承和多继承单继承:派生类只有一个直接基类ABC单继承XYZ多继承多继承:派生类有多个直接基类2021/7/249单继承派生类定义单继承派生类的语法格式:class派生类名:<继承方式>基类名{……//派生类新添加的成员};公有继承是最常用的方式,它建立了一种“is-a-kind-of”关系。public、pri

4、vate、protected2021/7/2410举例:商场的购物卡-1具有的信息:卡号、剩余金额可进行的操作:获取卡号、获取当前余额、消费不记名购物卡会员购物卡具有的信息:身份证号、姓名、电话可进行的操作:获取/修改身份证号、姓名、电话等信息2021/7/2411单继承派生类的构造函数派生类对象数据成员的构成:从基类继承过来的数据成员派生类自定义的数据成员如何初始化这几部分数据成员呢?基本数据类型类类型2021/7/2412单继承派生类的构造函数派生类构造函数(参数表):基类构造函数(参数表),对象成员1(参数表),……对象成员n(

5、参数表),{……//初始化自定义数据成员}如果基类使用的是缺省的构造函数或不带参数的构造函数,那么在初始化列表中可以省略“基类构造函数(参数表)“这一项。如果没有对象成员,那么在初始化列表中可以省略“对象成员(参数表)“这一项。2021/7/2413构造函数的调用顺序如下:构造函数和析构函数的调用顺序先调用基类构造函数;再调用对象成员所属类的构造函数;最后调用派生类构造函数;析构函数的调用顺序如下:再调用对象成员所属类的析构函数;先调用派生类的析构函数;最后调用基类的析构函数;2021/7/2414举例:商场的购物卡-2具有的信息:卡

6、号、剩余金额可进行的操作:获取卡号、获取当前余额、消费不记名购物卡会员购物卡具有的信息:身份证号、姓名、电话可进行的操作:获取/修改身份证号、姓名、电话等信息,能够充值2021/7/2415保护成员的引入C++专门设置了保护成员,即用protected关键字说明的成员。其特性:能够被基类和派生类所访问。和私有成员一样,类外不能访问。2021/7/2416举例:商场的购物卡-3具有的信息:卡号、剩余金额可进行的操作:获取卡号、获取当前余额、消费不记名购物卡会员购物卡具有的信息:身份证号、姓名、电话可进行的操作:获取/修改身份证号、姓名、

7、电话等信息,能够充值,消费能够打折,能积分2021/7/2417公有派生类class派生类名:public基类名{……//派生类新添加的成员};基类的成员在公有派生类中的引用权限基类公有成员私有成员保护成员公有派生类公有成员不可访问成员保护成员不可访问成员在类外不能被直接访问。在派生类的类内不能被直接访问2021/7/2418派生类的功能主要通过以下方式来体现:派生类的特性吸收基类成员添加新成员改造基类成员从编码的角度来看,派生类从基类中以较低的代价换来了较大的灵活性:派生类可以对继承的属性进行扩展、限制或改变。一旦产生了可靠的基类,

8、只需要调试派生类中所作的修改即可。2021/7/2419虚函数和多态性重载普通的成员函数的两种方式:在同一个类中重载:重载函数是以参数特征区分的。派生类重载基类的成员函数:由于重载函数处在不同的类中,因此它们的原型可以完

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

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

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