第八章继承性 ●●●●● ●●●● 继承( inheritance)机制是面向对象程序设计使代码可以° 复用的最重要的手段,它允许程序员在保持原有类特性的基础 上进行扩展,增加功能。这样产生新的类,称派生类。派生类 不是简单地继承基础类的特性,它可以调整部分成员的特性, 也可以增加一些新成员。继承呈现了面向对象程序设计的层次 结构。体现了由简单到复杂的认识过程。 81继承与派生的概念 8.5类层次中成员名的作用域 82派生类的构造函数与析构函数86类层次中类转换规则 83多重继承与派生类成员标识 87多重继承的应用例子 84虚基类 88MFC基础类及其层次结构
继承(inheritance)机制是面向对象程序设计使代码可以 复用的最重要的手段,它允许程序员在保持原有类特性的基础 上进行扩展,增加功能。这样产生新的类,称派生类。派生类 不是简单地继承基础类的特性,它可以调整部分成员的特性, 也可以增加一些新成员。继承呈现了面向对象程序设计的层次 结构。体现了由简单到复杂的认识过程。 第八章 继承性 8.1 继承与派生的概念 8.4 虚基类 8.3 多重继承与派生类成员标识 8.8 MFC基础类及其层次结构 8.5 类层次中成员名的作用域 8.2 派生类的构造函数与析构函数 8.7 多重继承的应用例子 8.6 类层次中类转换规则
8.1继承与派生的念 ●●●●● 层次概念是计算机的重要概念。通过继承( inheritance】 的机制可对类(cass)分层,提供类型/子类型的关系。c++ 通过类派生( class derivation)的机制来支持继承。继承是类 之间定义的一种重要关系。定义类B时,自动得到类A的操作和 数据属性,使得程序员只需定义类A中所没有的新成分就可完成 在类B的定义,这样称类B继承了类A,类A派生了类B,A是基类 (父类),B是派生类(子类)。这种机制称为继承。 称已存在的用来派生新类的类为基类( base class),又 称为父类。由已存在的类派生出的新类称为派生类( derived class),又称为子类。派生类可以具有基类的特性,共享基类 的成员函数,使用基类的数据成员,还可以定义自己的新特性, 定义自己的数据成员和成员函数。基类和派生类的集合称作类继 承层次结构( hierarchy) 在C++语言中,一个派生类可以从一个基类派生,也可以 从多个基类派生。从一个基类派生的继承称为单继承;从多个基 类派生的继承称为多继承。下图反映了类之间继承和派生关系
8.1 继承与派生的概念 层次概念是计算机的重要概念。通过继承(inheritance) 的机制可对类(class)分层,提供类型/子类型的关系。C++ 通过类派生(class derivation)的机制来支持继承。继承是类 之间定义的一种重要关系。定义类B时,自动得到类A的操作和 数据属性,使得程序员只需定义类A中所没有的新成分就可完成 在类B的定义,这样称类B继承了类A,类A派生了类B,A是基类 (父类),B是派生类(子类)。这种机制称为继承。 称已存在的用来派生新类的类为基类(base class) ,又 称为父类。由已存在的类派生出的新类称为派生类(derived class) ,又称为子类。派生类可以具有基类的特性,共享基类 的成员函数,使用基类的数据成员,还可以定义自己的新特性, 定义自己的数据成员和成员函数。基类和派生类的集合称作类继 承层次结构(hierarchy) 在C++语言中,一个派生类可以从一个基类派生,也可以 从多个基类派生。从一个基类派生的继承称为单继承;从多个基 类派生的继承称为多继承。下图反映了类之间继承和派生关系
8.1继承与派生的欐念國囻圓:: ●●●● ●●0 交通工具 文艺节目 汽车车轮船飞机歐歌曲舞蹈相声小晶 轿车货车旅游车 合唱独唱匚重唱 通俗美声 A X B C 多继承 单继承
8.1 继承与派生的概念 交通工具 文艺节目 汽车 火车 轮船 飞机 歌曲 舞蹈 相声 小品 轿车 货车 旅游车 合唱 独唱 二重唱 通俗 美声 A B C X Y Z 单继承 多继承
8.1类的派生局缝歌 ●●●●● ●●●● 由基类派生出派生类的定义的一般形式为 ●●0 ●●● class派生类名:继承方式1基类名1《,继承方式2 基类名2,…,继承方式n基类名n》{ private: 成员表1;∥/派生类新增加或替代的私有成员 public. 成员表2;/派生类新增加或替代的公有成员 protected 成员表3;∥/派生类新增加或替代的保护成员 };//分号不可少 其中基类1,基类2,是已声明的类。在派生类定义的 类体中给出的成员称为派生类成员,它们是新增加的数据和函 数成员。这些新增加的成员是派生类对基类的发展,它们给派 生类添加了不同于基类的新的属性和功能。派生类成员包括新 添加的,也包括通过屏蔽作用,取代基类成员的更新成员
由基类派生出派生类的定义的一般形式为 class 派生类名:继承方式1 基类名1《,继承方式2 基类名2,……,继承方式n 基类名n》{ private: 成员表 1; //派生类新增加或替代的私有成员 public: 成员表 2; //派生类新增加或替代的公有成员 protected: 成员表 3; //派生类新增加或替代的保护成员 };//分号不可少 其中基类1,基类2,……是已声明的类。 在派生类定义的 类体中给出的成员称为派生类成员,它们是新增加的数据和函 数成员。这些新增加的成员是派生类对基类的发展,它们给派 生类添加了不同于基类的新的属性和功能。派生类成员包括新 添加的,也包括通过屏蔽作用,取代基类成员的更新成员。 8.1.1 类的派生与继承
8.1类的派生与继最 ●●●●● ●●●● ●●0 ●●● 如果一个派生类可以同时有多个基类,称为多重继承 multiple-inheritance),这时的派生类同时得到了多个 已有类的特征。一个派生类只有一个直接基类的情况称为单 继承( single-inheritance) 个基类 派生出来 基类1基类2 基类n 基类可以直接 的新类同 派生出多 样可以作 个派生类 为基类再 继续派生 出更新的 派生类1 派生类2派生类1 派生类2 类,依此 类推形成 个层次 (a)多重继承 结构。 (b)单继承 图81多重继承与单继承心
基类1 基类2 …… 基类n 派生类1 派生类2 基类 派生类1 派生类2 (a)多重继承 (b)单继承 图8.1 多重继承与单继承 一个基类 可以直接 派生出多 个派生类 派生出来 的新类同 样可以作 为基类再 继续派生 出更新的 类,依此 类推形成 一个层次 结构。 8.1.1 类的派生与继承 如果一个派生类可以同时有多个基类,称为多重继承 (multiple-inheritance),这时的派生类同时得到了多个 已有类的特征。一个派生类只有一个直接基类的情况称为单 一继承(single-inheritance)