谭浩强《C++程序设计》原版电子教案 第11章
时间:2025-07-12
时间:2025-07-12
第4篇
面向对象的程序设计第11章 第12章 第13章 第14章 继承与派生 多态性与虚函数 输入输出流 C++工具
第11章 继承与派生11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.9 继承与派生的概念 派生类的声明方式 派生类的构成 派生类成员的访问属性 派生类的构造函数和析构函数 多重继承 基类与派生类的转换 继承在软件开发中的重要意义
面向对象程序设计有4个主要特点: 抽象、封装、继 承和多态性。 要较好地进行面向对象程序设计,还必须了解面向 对象程序设计另外两个重要特征——继承性和多态 性。在本章中主要介绍有关继承的知识,在第12章 中将介绍多态性。 面向对象技术强调软件的可重用性(software reusability) 。C++语言提供了类的继承机制,解决 了软件重用问题。
11.1 继承与派生的概念在C++中可重用性是通过继承(inheritance)这一机 制来实现的。继承是C++的一个重要组成部分。 一个类中包含了若干数据成员和成员函数。有时两 个类的内容基本相同或有一部分相同。 如研究生类和大学生类,已经有大学生类,设计研 究生类时,可以利用Student作为基础,再加上新 的内容即可,以减少重复的工作量。 C++提供的继 承机制就是为了解决这个问题。
在C++中,所谓“继承”就是在一个已存在的类的 基础上建立一个新的类。已存在的类(例如“大学 生”)称为“基类(base class)”或“父类(father class)”。新建立的类(例如“研究生”)称为“派生 类(derived class)”或“子类(son class)”。
图11.2
从已有的类(父类)产生一个新的子类,称为类的派 生。派生类特点: 派生类继承了基类的所有数据成员和成员函数,并 添加自己特有的数据或函数成员。 一个基类可以派生出多个派生类,每一个派生类又 可以作为基类再派生出新的派生类,因此基类和派 生类是相对而言的。 继承的类型:单继承和多继承 一个派生类只从一个基类派生,这称为单继承 (single inheritance),这种继承关系所形成的层次 是一个树形结构,可以用图11.3表示。
图11.3 请注意图中箭头的方向,在本书中约定,箭头表示 继承的方向,从派生类指向基类。
一个派生类有两个或多个基类的称为多重继承 (multiple inheritance),这种继承关系所形成的结 构如图11.4所示。
图11.4
基类和派生类的关系: 派生类是基类的具体化,而 基类则是派生类的抽象。
图11.5
11.2 派生类的声明方式(如何实现?)假设已经声明了一个基类Student,在此基础上通 过单继承建立一个派生类Student1:class Student1: public Student //声明基类是Student {public: void display_1( ) //新增加的成员函数 { cout<<″age: ″<<age<<endl; cout<<″address: ″<<addr<<en
dl; } private: int age; //新增加的数据成员 string addr; //新增加的数据成员 };
基类名前面有public的称为“公用继承(public inheritance)”。 声明派生类的一般形式为 class 派生类名: [继承方式] 基类名 { 派生类新增加的成员 }; 继承方式包括: public(公用的),private(私有的)和 protected(受保护的),此项是可选的,如果不写此 项,则默认为private(私有的)。
11.3 派生类的构成(包含哪些成员?)
派生类中的成员包括从基类继承过来的成员和自己 增加的成员两大部分。在基类中包括数据成员和成 员函数两部分,派生类分为两大部分: 一部分是从 基类继承来的成员,另一部分是在声明派生类时增 加的部分。每一部分均分别包括数据成员和成员函 数。
图11.6
构造一个派生类包括2部分工作: (如何构造?) (1) 从基类接收成员。派生类把基类全部的成员(不 包括构造函数和析构函数)接收过来,也就是说是 没有选择的,不能选择接收其中一部分成员,而舍 弃另一部分成员。
(2) 在声明派生类时增加的成员。体现了派生类对 基类功能的扩展。 在声明派生类时,一般还应当自己定义派生类的构 造函数和析构函数,因为构造函数和析构函数是不 能从基类继承的。 继承设计方法: 可以先声明一个基类,在此基类中只提供一些最 基本的功能。 然后在声明派生类时加入某些具体的功能,形成 适用于某一特定应用的派生类。
11.4 派生类成员的访问属性(如何访问派生类的各种成员?)派生类中包含基类成员和派生类自己增加的成员, 就产生了这两部分成员的关系和访问属性的问题。
…… 此处隐藏:11字,全部文档内容请下载后查看。喜欢就下载吧 ……上一篇:4. 药物多晶型及分析方法
下一篇:人才教育培训教材图片PPT模板