C++ Primer 5th笔记(chap 18 大型程序工具) 多重继承与虚继承
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 18 大型程序工具) 多重继承与虚继承相关的知识,希望对你有一定的参考价值。
1. 多重继承 (multiple inheritance)
一个类从多个直接基类派生
eg.
class Bear : public ZooAnimal
class Panda : public Bear, public Endangered /* ... */ ;
Panda对象内存
1.1 构造一个派生类的对象将N时构造并初始化它的所有基类子对象。 与从一个基类进行的派生一样, 多重继承的派生类的构造函数初始值也只能初始化它的直接基类
1.2 派生类的构造函数初始值列表将实参分别传递给每个直接基类。 其中基类的构造顺序与派生列表中基类的出现顺序保持一致
eg. ZooAnimal 是整个继承体系的最终基类 , Bear 是 Panda 的直接基类 ,
//显式地初始化所有基类
Panda::Panda (std::string name, bool onExhibit )
: Bear (name, onExhibit, "Panda"),
Endangered (Endangered::critical)
// 隐式地使用 Bear 的默认构造函数初始化 Bear 子对象
Panda::Panda ( )
: Endangered (Endangered::critical)
step1. ZooAnimal 是 Bear 的基类, 所以首先初始化 ZooAnimal
step2. 接下来初始化 Panda 的第一个直接基类 Bear。
step3. 初始化 Panda 的第二个直接基类 Endangered.
step4. 最后初始化 Panda
以上是关于C++ Primer 5th笔记(chap 18 大型程序工具) 多重继承与虚继承的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th笔记(chap 18 大型程序工具)noexcept
C++ Primer 5th笔记(chap 18 大型程序工具)异常处理
C++ Primer 5th笔记(chap 18 大型程序工具)捕获异常
C++ Primer 5th笔记(chap 18 大型程序工具)命名空间特性