多个基类
如 多重继承所述,类可以从多个基类派生。 在多重继承模型 (其中类从多个基类派生),基类指定使用 基础列表 语法元素 (参见中 概述的语法部分)。 例如, CollectionOfBook的类声明,从派生 Collection 和 Book,可以指定:
// deriv_MultipleBaseClasses.cpp
// compile with: /LD
class Collection {
};
class Book {};
class CollectionOfBook : public Book, public Collection {
// New members
};
基类指定的顺序并不重要的情况除外构造函数和析构函数调用的位置。 在这些情况下,基类指定的顺序影响以下操作:
初始化由构造函数出现的顺序。 如果代码依赖于 Collection 部件之前进行初始化的 CollectionOfBook 的 Book 部分,规范顺序是很重要的。 初始化按类在 基列表中指定的顺序发生。
析构函数调用清理的顺序。 同样,因此,如果特定 “section”的类必须存在,当销毁时另一部分,该顺序是很重要的。 析构函数在 基列表中指定类的相反的顺序调用。
备注
基类的规范顺序可能会影响类的内存布局。不要对任何计划决策基于遵循内存的基成员的指示。
当指定 基础列表时,不能多次指定同一个类名称。 但是,这是一个间接基为派生类的类多次是可能的。