多繼承且有內嵌物件時建構函式的呼叫順序

2022-07-17 22:42:15 字數 548 閱讀 1998

1、呼叫基類建構函式,呼叫順序按照他們被繼承時宣告的順序(從左到右)

2、呼叫成員物件的建構函式,呼叫順序按照它們在類中宣告的順序

3、最後呼叫本類的建構函式

#include using

namespace

std;

class b1 //

基類b1,建構函式有引數

};class b2 //

基類b2,建構函式有引數

};class b3 //

基類b3,建構函式無引數

};class c: public b2, public b1, public

b3 ;

intmain()

結果:

constructing b2 2

constructing b1

1constructing b3 *constructing b1

3constructing b2

4constructing b3 *constructing c *

c 多繼承構造函式呼叫

建構函式的呼叫順序從上面的分析中可以看出,基類建構函式總是被優先呼叫,這說明建立派生類物件時,會先呼叫基類建構函式,再呼叫派生類建構函式,如果繼承關係有好幾層的話,例如 a b c 那麼建立 c 類物件時建構函式的執行順序為 a類建構函式 b類建構函式 c類建構函式 建構函式的呼叫順序是按照繼承的層...

C 虛繼承時的建構函式

在虛繼承中,虛基類是由最終的派生類初始化的,換句話說,最終派生類的建構函式必須要呼叫虛基類的建構函式。對最終的派生類來說,虛基類是間接基類,而不是直接基類。這跟普通繼承不同,在普通繼承中,派生類建構函式中只能呼叫直接基類的建構函式,不能呼叫間接基類的。下面我們以菱形繼承為例來演示建構函式的呼叫 in...

JS物件導向 建構函式 繼承

繼承 子類繼承父類的屬性和方法 好處 減少 量,公共的父類可以復用.降低耦合度.js裡實現繼承的方法 1.通過改變構造建構函式中物件的指向實現繼承 2.通過原型鏈實現繼承.function animal function cat var cat new cat new出乙個例項改變呼叫物件的方法 1...