继承和派生类课件.ppt

继承和派生类课件.ppt

ID:57028351

大小:183.00 KB

页数:29页

时间:2020-07-26

继承和派生类课件.ppt_第1页
继承和派生类课件.ppt_第2页
继承和派生类课件.ppt_第3页
继承和派生类课件.ppt_第4页
继承和派生类课件.ppt_第5页
资源描述:

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

1、第二部分C++面向对象程序设计第六章继承和派生类本章课件制作:关欣本章内容继承性、基类和派生类的基本概念派生类的定义和派生类对象的组成派生类的构造函数和析构函数赋值兼容规则6.1继承概述继承:就是在原有类(称为基类或父类)的基础上,经过适当扩充和完善建立新的类(称为派生类或子类)。新的类不仅具有基类的特征,而且还可以添加新的特征,同时能够继续被继承而派生出新的类。继承的本质是创建新的类。1.继承的定义扩充和完善原有程序以适应新的需求提高软件开发的效率,增加程序的重用性,减少代码和数据的冗余度2.继承的特点AB(1)B单重继承A(2)C多重继承A

2、和BACBABC(3)多级继承(4)混合继承ACBEFD3.3种继承关系6.2基类和派生类1.定义派生类的格式class派生类名:[virtual]继承方式1基类名1,[virtual]继承方式2基类名2,…{派生类类体};派生类类体中未定义的成员函数的实现2.3种继承方式public(公有继承)private(私有继承,缺省继承方式)protected(保护继承)不可直接访问privateprivateprivate不可直接访问protectedprotectedprotected不可直接访问protectedpublicpublicprivatepr

3、otectedpublic基类特性派生类特性继承方式不同继承方式下基类与派生类的特性2.1public公有继承程序说明:派生类B的成员函数f2()、g2()和h2()中,可直接访问类A的k1、f1()、j1和g1(),但不能直接访问类A的i1和h1()。派生类B的对象仅可直接访问类A的k1和f1(),而不能直接访问类A的任何保护成员和私有成员。2.2private私有继承程序说明:派生类B的成员函数f2()、g2()和h2()中,可直接访问类A的k1、f1()、j1和g1(),但不能直接访问类A的i1和h1()。派生类B的对象不能直接访问类A的任何保护成员

4、和私有成员。2.3protected保护继承程序说明:派生类B的成员函数f2()、g2()和h2()中,可直接访问类A的k1、f1()、j1和g1(),但不能直接访问类A的i1和h1()。派生类B的对象不能直接访问类A的任何保护成员和私有成员。3.派生类对象的数据成员组成直接基类1数据成员(除静态数据成员外)直接基类2数据成员(除静态数据成员外).........直接基类n数据成员(除静态数据成员外)子对象1数据成员(除静态数据成员外)子对象2数据成员(除静态数据成员外).........子对象m数据成员(除静态数据成员外)派生类本身数据成员(除静态数据成员

5、外)Bj2Ci3Ai1k1Aa1i1k1Aa2i1k1B的子对象a2的数据成员C的数据成员B的数据成员B的子对象a1的数据成员B的直接基类A的数据成员例画出下面程序中类C对象obj1的组成结构图。6.3派生类的构造函数与析构函数1.派生类构造函数的一般形式派生类构造函数名(总参数表):直接基类初始化表,子对象初始化表,派生类自身数据成员初始化表{派生类构造函数体}直接基类初始化表的形式为:直接基类1构造函数(参数表1),直接基类2构造函数(参数表2),…子对象初始化表形式为:子对象名1(参数表1),子对象名2(参数表2),…派生类自身数据成员初始化表形式为:数

6、据成员名1(参数1),数据成员名2(参数2),…2.派生类构造函数的执行顺序直接基类1数据成员(除静态数据成员外)直接基类2数据成员(除静态数据成员外).........直接基类n数据成员(除静态数据成员外)子对象1数据成员(除静态数据成员外)子对象2数据成员(除静态数据成员外).........子对象m数据成员(除静态数据成员外)派生类本身数据成员(除静态数据成员外)各直接基类派生类自身数据成员各子对象(定义时的顺序)(定义时的顺序)例单重继承派生类构造函数示例程序输出结果:Base缺省构造函数Base缺省构造函数Derived缺省构造函数Base构造函数B

7、ase构造函数Derived构造函数a=0,b=0,Ba.a=0a=5,b=7,Ba.a=3b0BaseBaa0Basea0d1组成结构图b7BaseBaa3Basea5d2组成结构图3.派生类析构函数派生类析构函数的形式无特殊之处。不必显式地调用各直接基类、各子对象相应类的析构函数,这些操作是由系统自动完成的。4.派生类析构函数的执行顺序直接基类1数据成员(除静态数据成员外)直接基类2数据成员(除静态数据成员外).........直接基类n数据成员(除静态数据成员外)子对象1数据成员(除静态数据成员外)子对象2数据成员(除静态数据成员外).........子

8、对象m数据成员(除静态数据成员外)派生

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

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

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