派生類建構函式

2021-07-29 19:41:05 字數 645 閱讀 7757

1、  建構函式和複製控制成員不能繼承,每個類定義自己的建構函式和複製控制成員。像任何類一樣,如果類不定義自己的預設建構函式和複製控制成員,就將使用合成版本。

2、  派生類的合成預設建構函式除了初始化派生類的資料成員之外,它還初始化派生類物件的基類部分。基類部分由基類的預設建構函式初始化。

3、  派生類建構函式的初始化列表只能初始化派生類的成員,不能直接初始化繼承成員。相反派生類建構函式通過將基類包含在建構函式初始化列表中來間接初始化繼承成員。

4、  建構函式初始化列表為類的基類和成員提供初始值,它並不指定初始化的執行次序。首先初始化基類,然後根據宣告次序初始化派生類的成員。  

5、  乙個類只能初始化自己的直接基類。直接就是在派生列表中指定的類。如果類 c 從類 b 派生,類 b 從類 a 派生,則 b 是 c 的直接基類。雖然每個 c 類物件包含乙個 a 類部分,但 c 的建構函式不能直接初始化 a 部分。相反,需要類 c 初始化類 b,而類 b 的建構函式再初始化類 a。這一限制的原因是,類 b 的作者已經指定了怎樣構造和初始化 b 型別的物件。像類 b 的任何使用者一樣,類 c 的作者無權改變這個規約。

6、  建構函式只能初始化其直接基類的原因是每個類都定義了自己的介面。一旦類定義了自己的介面,與該類物件的所有互動都應該通過該介面,即使物件是派生類物件的一部分也不例外。

派生類 建構函式

在hpp標頭檔案中,宣告建構函式中,必須為新增的資料成員和基類的資料成員提供資料,即每乙個形參代表乙個成員 派生類宣告建構函式入下,其中r是給新增的資料,後面是基類的成員。在cpp檔案定義的時候,必須建立基類的物件,即如果不是預設的物件,則必須顯示的建立基類的物件,將資料傳遞給基類的物件 如下圖 t...

構造派生類

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

派生類的建構函式

派生類的資料成員由所有基類的資料成員與派生類新增的資料成員共同組成,如果派生類新增成員中包括其他類的物件 子物件 派生類的資料成員中實際上還間接包括了這些物件的資料成員。因此,構造派生類的物件時,必須對基類資料成員 新增資料成員和成員物件的資料成員進行初始化。派生類的建構函式必須要以合適的初值作為引...