C++ Primer 5th笔记(chap 18 大型程序工具) 多重继承与虚继承
生活随笔
收集整理的這篇文章主要介紹了
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笔记(cha
- 下一篇: cmake (3)多个源文件aux_so