《c继承与派生》PPT课件

《c继承与派生》PPT课件

ID:39350125

大小:342.60 KB

页数:47页

时间:2019-07-01

《c继承与派生》PPT课件_第1页
《c继承与派生》PPT课件_第2页
《c继承与派生》PPT课件_第3页
《c继承与派生》PPT课件_第4页
《c继承与派生》PPT课件_第5页
资源描述:

《《c继承与派生》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章继承与派生派生类的引入C++的类提供了良好的模块分解技术,也具有可重用软件所期望的品质:它们是相似一致的模块,通过信息隐藏,将它们的接口和实现清楚地分开来。我们还希望在类的基础上能取得更好的可重用性和可扩充性的目标。面向对象的继承技术提供了实现上述目标的有力手段。2021/7/312现实中的继承与派生在自然界中,继承这个概念是非常普遍的。例如:小猫仔继承了猫爸猫妈的特性,所以长的是猫鼻子猫眼,我们不会把它错认为是小狗。继承就是将一些本质的特性遗传给子代,使后代在很大程度上具有与父代相同的性质。子代同时还具有父代没有的特性。2021/7/313再

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

3、展了新的功能。类是某类事物共同特性的体现,它对外提供了特定的功能。2021/7/316C++的继承关系继承就是在一个已经存在的类的基础上建立另一个新的类。基类派生类已存在的类称为“基类”或“父类”,新建立的类称为“派生类”或“子类”,如图所示:2021/7/317派生类的功能主要通过以下方式来体现:派生类的特性吸收基类成员添加新成员改造基类成员从编码的角度来看,派生类从基类中以较低的代价换来了较大的灵活性。一旦产生了可靠的基类,只需要调试派生类中所作的修改即可。派生类可以对继承的属性进行扩展、限制或改变。2021/7/318单继承和多继承单继承:派生

4、类只有一个直接基类ABC单继承XYZ多继承多继承:派生类有多个直接基类2021/7/319单继承派生类定义单继承派生类的语法格式:class派生类名:<继承方式>基类名{……//派生类新添加的成员};“继承方式”可以是public、private、以及protected。虽然继承了基类的所有成员,但是派生类并非都能访问基类的所有成员,继承方式会影响派生类对基类中各种成员的引用。2021/7/3110公有派生类在声明派生类时将继承方式指定为public时,该类称为公有派生类。class派生类名:public基类名{……//派生类新添加的成员};2021

5、/7/3111基类的成员在公有派生类中的引用权限基类公有成员私有成员保护成员公有派生类公有成员不可访问成员保护成员不可访问成员在类外不能被直接访问。在派生类的类内不能被直接访问。2021/7/3112举例:公有派生classBase{intv1;public:intv2;Base(inta=0,intb=0){v1=a;v2=b;}};classDerived:publicBase{intv3;public:intv4;Derived(inta=0,intb=0){v3=a;v4=b;}voidfunc(){intsum1=v1+v2+v3+v4;i

6、ntsum2=v2+v3+v4;}};voidmain(){Derivedobj(5,6);obj.v2=8;}//错误2021/7/3113私有派生类在声明派生类时将继承方式指定为private时,该类称为私有派生类。class派生类名:private基类名{……//派生类新添加的成员};2021/7/3114基类的成员在私有派生类中的引用权限基类公有成员私有成员保护成员私有派生类私有成员不可访问成员私有成员2021/7/3115举例:私有派生classBase{intv1;public:intv2;Base(inta=0,intb=0){v1=a

7、;v2=b;}};classDerived:privateBase{intv3;public:intv4;Derived(inta=0,intb=0){v3=a;v4=b;}voidfunc(){intsum1=v1+v2+v3+v4;intsum2=v2+v3+v4;}};voidmain(){Derivedobj(5,6);obj.v2=8;//错误//错误2021/7/3116公有派生和私有派生的比较虽然派生类继承了基类所有的成员,但是基类的私有成员对于派生类来说是不可见的,因此不能被派生类所访问。基类公有成员私有成员保护成员公有派生类公有成员

8、不可访问成员保护成员私有派生类私有成员不可访问成员私有成员2021/7/3117保护成员的引入为了解决这个问

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

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

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