c++ 第十章 继承.ppt

c++ 第十章 继承.ppt

ID:49261475

大小:238.00 KB

页数:30页

时间:2020-02-01

c++ 第十章 继承.ppt_第1页
c++ 第十章 继承.ppt_第2页
c++ 第十章 继承.ppt_第3页
c++ 第十章 继承.ppt_第4页
c++ 第十章 继承.ppt_第5页
资源描述:

《c++ 第十章 继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第九章 类(继承)主要内容:第一节继承的意义的理解;第二节单继承的定义;第三节多继承的定义;第四节虚基类;第十章 继承与派生(一)学时数:2课时;重难点:继承意义的理解;继承机制下的访问权限;一、继承若已经定义了学生类,并完成了相应的处理,现需要定义一个研究生类来完成对研究生事务的相应处理。1)继承的意义分析:需要定义的研究生类和已经存在的学生类必然存在着一定的联系,研究生类是学生类的特例,大学生具有的特性研究生也基本都具有。那么在定义研究生类时,能不能将已经实现了的大学生类利用上呢?若有类B从类A继承而来,那么称为类A为基类(父类),类B为派生类(子类),派

2、生类除了继承了基类所有的数据成员和多数成员函数以外,还可以有自己新增的数据成员或成员函数。此时可以用已经存在的学生类直接派生研究生类。提高了代码开发的效率,也提高了程序的可维护性。2)派生类的定义格式class派生类名:继承方式基类名1,继承方式基类名2{访问权限:新增的数据成员新增的成员函数};若类A已经存在,并且待定义的类B和类A具有继承关系时,可以采用如下的格式定义派生类B:派生类对象除了拥有从基类继承过来的所有数据成员外,还拥有自己新增的数据成员,所以,派生类对象占据的内存空间为这两类数据成员的总和。3)派生类对象的内存空间aa:a1a2a1a2b1b

3、b1:b2从类A继承的成员自己新增的成员4)派生类对基类成员的访问权限分析:1、类B的成员函数f2能否访问f1,i1,j1;2、类B的对象能否访问f1,i1,j1;3、类C的成员函数f3能否访问f1,i1,j1,能否访问f2,i2,j2;4、类C的对象能否访问f1,i1,j1,能否访问f2,i2,j2;第十章 继承与派生(一)学时数:2课时;重难点:单继承的定义;派生类构造函数的问题;同名成员的问题;子类型和类型适应一、单继承的定义1)定义格式class派生类名:继承方式基类名{访问权限:新增的数据成员新增的成员函数};2)注意:派生类对象在内存中的数据组织结

4、构问题;继承的成员在派生类中的被访问权限问题;3)例题分析;4)程序编写;定义一个类A,包含2个int类型数据成员,并包含合适的成员函数对数据成员进行初始化及将数据成员输出。从类A公有派生出类B,新增了一个int类型数据成员,并请定义合适的成员函数对数据成员进行初始化,并将数据成员输出。二、派生类构造函数的问题当没有继承时,类的数据成员调用构造函数来初始化,那么,对于派生类的数据成员该如何进行初始化呢,派生类的构造函数该如何进行定义呢?解决的思路为:从哪个类继承过来的数据成员,最后还是由哪个类的构造函数完成对其初始化,但是派生类的构造函数可能需要显示的去调用基

5、类的构造函数,此时派生类构造函数的定义需要考虑基类构造函数的定义情况。1)意义:2)定义:1、当基类未提供任何构造函数时,派生类的构造函数的定义情况;2、当基类只提供了无参构造函数时;3、当基类只提供了无参构造函数时;(1)派生类构造函数的定义中可以省略对基类构造函数的调用,其条件是在基类中必须有默认的构造函数或者根本没有定义构造函数。(2)当基类的构造函数使用一个或多个参数时,则派生类必须定义构造函数,提供将参数传递给基类构造函数的途径。派生类构造函数的调用顺序如下:(1)调用基类的构造函数;(2)调用子对象类的构造函数,调用顺序按照它们在类中说明的顺序。(

6、3)派生类构造函数体中的程序。3)调用:三、同名成员的问题若基类A中包含有数据成员a,派生类中也定义了数据成员a,此时派生类对象在访问时会有冲突吗?又如:类A定义了print成员函数,类B也定义了名为print的成员函数,那么,有如下调用时,调用的是哪个构造函数:Aaa1;Bbb1;aa1.print();bb1.print();1)子类型化子类型的概念涉及到行为共享,它与继承有着密切关系。有一个特定的类型S,当且仅当它至少提供了类型T的行为,又称类型S是类型T的子类型。子类型是类型之间的一般和特殊的关系。四、子类型和类型适应2)类型适应类型适应是指两种类型之

7、间的关系。例如,B类型适应A类型是指B类型的对象能够用于A类型的对象所能使用的场合。3)应用:赋值兼容规则1、派生类对象可以赋值给基类对象derivedd;baseb;b=d;2、派生类对象可以初始化基类的引用derivedd;base&br=d;3、派生类对象的地址可以赋给指向基类的指针derivedd;base*pb=&d;第十章 继承与派生(一)学时数:2课时;重难点:多继承的定义;多继承下派生类构造函数的问题;二义性问题;虚基类。一、多继承的定义1)定义格式class派生类名:继承方式基类名1,继承方式基类名2[,…]{访问权限:新增的数据成员新增的成

8、员函数};二、派生类构造函数的问题多继

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

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

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