谭浩强《C++程序设计》原版电子教案 第11章

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……
谭浩强《C++程序设计》原版电子教案 第11章.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219