1. 程式人生 > >c++繼承之多重繼承和多繼承

c++繼承之多重繼承和多繼承

這裡寫圖片描述

多重繼承

概念

多重繼承是一個類的父類也有父類。
多重繼承的物件初始化方式最高的父類到子類。
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{};