c++繼承之多重繼承和多繼承
阿新 • • 發佈:2019-02-04
多重繼承
概念
多重繼承是一個類的父類也有父類。
多重繼承的物件初始化方式最高的父類到子類。
A()–>B–>C()
銷燬時正好是初始化的反順序。
~C–>~B–>A()
程式碼示例為:
class A{};
class B:public A{};
class C:public B{};
特點:
- 多重繼承與多繼承不同,當B類從A類派生,C類從B類派生,此時稱為多重繼承
- 當例項化子類時,會首先依次呼叫所有基類的建構函式,最後呼叫該子類的建構函式;銷燬該子類時,則相反,先呼叫該子類的解構函式,再依次呼叫所有基類的解構函式。
+ 無論繼承的層級有多少層,只要它們保持著直接或間接的繼承關係,那麼子類都可以與其直接父類或間接父類構成 is a的關係,並且能夠通過父類的指標對直接子類或間接子類進行相應的操作,子類物件可以給直接父類或間接父類的物件或引用賦值或初始化。
多繼承
概念
多繼承是一個類有2個以上父類。
多繼承的物件初始化方式是父類依次初始化。
A()–>B–>AB()
銷燬時正好是初始化的反順序。
~AB–>~B()–>A~()
程式碼示例
class A{};
class B{};
class AB:public A,public B{};