面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt

面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt

ID:49920443

大小:5.95 MB

页数:22页

时间:2020-03-04

面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt_第1页
面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt_第2页
面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt_第3页
面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt_第4页
面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt_第5页
资源描述:

《面向对象程序设计 C++ 第二版 课件第7章 继承与派生.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、学习目标理解继承和派生类的概念掌握单继承和多继承的定义方法及应用掌握三种继承方式的访问控制掌握多继承中二义性的两种处理方法7.1继承与派生7.1.1基本概念在使用面向对象程序设计方法解决问题时,一般先建立与实际问题相关的类,然后对类进行实例化,即生成对象,最后利用对象的属性和方法编写解决问题的方案。由此可见,构建类是解决问题的关键。在许多现实问题中,所涉及的类多数是相关的。例如,学生、教师都是人,都有人的基本属性,如姓名、年龄等,但各自有自己的特点,如学生有成绩、学号;教师有工作部门、职称级别等。显然,教师和人两个类具有相关性。这种特殊的类之间的关系,为构建类提供了一种特别的方式——继承,

2、即如果已经拥有了一个类(如人类),则可以通过继承这个类的成员,再加入扩充新成员(如教师的职称、部门),构建一个新类(教师类)。7.1继承与派生7.1.1基本概念图7-1类之间的继承与派生关系7.1继承与派生7.1.2单一继承1.单一继承的定义在单一继承方式下,定义派生类的格式如下:}7.1继承与派生2.派生类的生成过程在C++程序设计中,一般先建立基类,然后建立派生类,再通过派生类创建对象进行实际问题的处理。派生新类一般要经过吸收基类成员、改造基类成员和添加新的成员三个阶段。吸收基类成员:首先是将基类的成员全部接收,这样,派生类实际上包含了其所有基类中除构造函数和析构函数之外的全部成员。

3、改造基类成员:一是通过继承方式,改变基类成员的访问控制。二是通过覆盖,即在派生类中定义一个和基类同名的成员(对于成员函数,参数必须一致)。添加新的成员:新增成员是继承与派生机制的核心,是保证派生类在功能上有所发展的关键。7.2三种继承方式基类的成员可以有3种访问权限,分别是private、protected和public。基类中的成员函数可以对基类中任何一个其他成员访问,但是在基类外部,通过基类的对象只能访问该类的public成员。公有继承(public)、私有继承(private)和保护继承(protected)是常用的三种继承方式。在不同的继承方式下,原来具有不同的访问权限的基类成

4、员在派生类中的访问权限可能发生变化。三种继承的访问属性如表7-2所示。7.2三种继承方式7.2.1公有继承(派生)公有继承的特点是基类的公有成员和保护成员作为派生类成员时,它们都保持原有的状态,而私有成员是不能被继承的。即:基类的公有段(public)成员被继承为公有的。基类的私有段(private)成员在派生类中不可见。基类的保护段(protected)成员被继承为保护的。7.2三种继承方式7.2.2私有继承(派生)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,所以派生类的其他成员可以访问它们,但是在类外部通过派生类对象无法访问它们。即:基类的公有段(publi

5、c)成员被继承为私有的。基类的私有段(private)成员在派生类中不可见。基类的保护段(protected)成员被继承为私有的。7.2三种继承方式7.2.3保护继承(派生)保护继承的特点是基类的公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友员访问。即:基类的公有段(public)成员被继承为保护的。基类的私有段(private)成员在派生类中不可见。基类的保护段(protected)成员被继承为保护的。7.3派生类的构造函数和析构函数7.3.1构造函数派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时除了对自

6、己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象时,还应包含对子对象初始化的构造函数。派生类构造函数的一般格式如下:<派生类名>(<派生类构造函数参数表>):<基类构造函数名>(<参数表>){<派生类中新增数据成员初始化语句>};7.3派生类的构造函数和析构函数7.3.2析构函数和构造函数一样,析构函数也不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。其执行顺序与构造函数执行顺序正好相反。派生类的析构函数的调用顺序是:(1)执行派生类的析构函数(2)执行基类的析构函数7.4多继承7.4.1多继承的定义多继承可以看作是

7、单继承的扩展。所谓多继承是指派生类具有多个基类,派生类与每个基类之间的关系仍可看作是一个单继承。多继承机制如图7-4所示。类Class_D继承类class_A、clase_B和class_C。换句话说,类Class_D是类class_A、clase_B和class_C的派生类,类Class_D包含类class_A、clase_B、class_C的所有数据成员和成员函数。7.4多继承多继承派生类的语法格式如下:7.4多继承

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

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

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