第11章继承和派生.pptVIP

  • 3
  • 0
  • 约5.39千字
  • 约 24页
  • 2016-08-21 发布于重庆
  • 举报
第11章继承和派生

第11章 继承和派生 本章主要内容 11.1 继承和派生的概念 11.2 派生类成员的访问属性 11.3 派生类的构造函数和析构函数 11.4 虚 基 类 11.5 子类型关系 11.1 继承和派生的概念 11.1.1 基本概念 11.1.2 单一继承 11.1.3 多重继承 11.1.1 基本概念 继承是面向对象程序设计中最重要的机制,它支持层次 分类的观点。继承使得程序员可以在一个较一般的类的基础 上很快地建立一个新类,而不必从零开始设计每个类。 在C++中,一个类从另一个类继承特征,称为派生一个 类,所派生的类称派生类,另一个类称为基类。派生类不但 继承了基类所有的成员变量和成员函数,而且可以添加新的 成员变量和成员函数。 继承常用来表示类属关系。当从已有的类中派生出新的 类时,可以对派生类做以下几种变化: (1)全部或部分地继承基类的成员数据或成员函数。 (2)增加新的成员变量。 (3)增加新的成员函数。 (4)重新定义已有的成员函数。 (5)改变现有的成员属性。 11.1.2 单一继承 在C++中,一个派生类可以从一个基类派生,也可以从 多个基类派生,从一个基类派生的继承称为单一继承。图 11.1所示为单一继承的示意图。 例11-1 单一继承 图11.1 单一继承示意图 11.1.2 单一继承 在定义单一继承时,派生类只能有一个直接父类,其定义如下: Class派生类名:Access基类名 { private: ...        //私有成员说明   public: ...        //公有成员说明 protected: ...        //保护的成员说明 }; 其中,派生类名为新定义的派生类的名字,基类名是派生类的直接基类 的名字,继承方式可以是public(公有)、private(私有)和protected(保 护),它用于影响基类成员到派生类后访问权限,继承方式可以省略,默 认为private。成员说明表用于给出在派生类中新增的成员。 11.1.3 多重继承 为一个派生类指定多个基类,这样的继承结构被称为多 重继承。多重继承形成一个有向无环圆,图11.3所示为多重 继承的示意图。 例11-2 多重继承 例11-3 manage类的定义 例11-4 temporary类的定义 例11-5 temporary类的定义 图11.3 多重继承示意图 11.1.3 多重继承 用多个基类来派生一个类时,其一般格式为: class类名:Access类名1,Access类名2,…Access类名n { private: …        //私有成员说明  Public: …        //公有成员说明 Protected: …        //保护的成员说明 }; 其中,派生类“类名”继承了类名1~n的所有成员数据和成 员函数,每一个基类的类名前的Access用以限定该基类中的 成员在派生类中的访问权限,其规则与单一继承的用法类同。 11.2 派生类成员的访问属性 11.2.1 公有继承 11.2.2 私有继承 11.2.3 保护成员和保护继承 11.2.4 多级派生时的访问属性 11.2.1 公有继承 在定义一个派生类时将基类的继承方式指定为public的, 称为公用继承,用公用继承方式建立的派生类称为公用派生 类,其基类称为公用基类。 公有派生时,基类中所有成员在公有派生类中保持各个 成员访问权限。具体地说,基类中说明为public的成员,在 派生类中仍保持为public的成员,在派生类或在派生类外都 可以直接使用这些成员。基类中说明为private的成员,属 于基类私有的,在公有派生类中不能直接使用基类中的私有 成员,必须通过该基类公有的或保护的成员函数来间接使用 基类中的私有成员。 例11-6 公有派生示例 11.2.2 私有继承 在声明一个派生类时将基类的继承方式指定为private 的,称为私有继承,用私有继承方式建立的派生类称为私有 派生类,其基类称为私有基类。 对于私有派生类而言,其基类中公有成员和保护成员在 派生类中均变为私有的,在派生类中仍可直接使用这些成员。 在派生类之外均不可直接使用基类中的公有或私有成员,这 些成员必须通过派生类中的公有成员函数来间接使用它们。 例11-7 私有派

文档评论(0)

1亿VIP精品文档

相关文档