C 派生類物件構造順序

2021-10-01 23:45:47 字數 431 閱讀 4539

構造依如下順序:

1. 呼叫本類的基類的建構函式

1.1 按照基類成員定義順序對每個成員執行初始化

1.2 執行基類建構函式體

2. 呼叫本類的建構函式

2.1 按照本類成員定義順序引用初始化列表對每個成員執行初始化

2.2 執行本類建構函式體

總結為一句:首先初始化本類的基類部分,然後按照宣告的順序依次初始化本類的成員。(c++primer p531)

更進一步理解建構函式體的執行順序:基類成員建構函式體---基類建構函式體---本類成員建構函式體---本類建構函式體。

更進一步理解物件構造的完整性:在本類成員的建構函式執行的時候,本類的建構函式還未執行,尤其在涉及分配動態資源時需要注意這點。

建構函式或析構函式中呼叫虛函式時,呼叫的是當前類對應的虛函式。(c++primer15.7.3最後內容)

構造派生類

include include 繼承 構造派生類 using namespace std class student student 這個就是預設建構函式。就不能再有student std cout student 進一步解釋 對於student string pname noname 不輸入引數是...

C 派生類構造函式呼叫順序(詳解)

我們來看下面一段 class b1 class b2 class b3 class c public b2,public b1,public b3 private b1 memberb1 b2 memberb2 b3 memberb3 void main 執行後的結果如下 constructing ...

派生類物件初始化構造過程順序

cpp view plain copy include using namespace std class a class b a intmain void 1.定義乙個派生類物件,首先初始化它的基類成員 基類部分 即呼叫基類的建構函式 如果是多繼承,則按繼承的先後順序呼叫基類的建構函式 2.基類部...