繼承和派生(2) 析構和構造

2021-08-22 15:03:32 字數 767 閱讀 9547

派生類的物件的資料結構是由基類中說明的資料成員和派生類中說明的資料成員共同構成。 將派生類的物件中由基類中說明的資料成員和操作所構成的封裝體稱為基類子物件,它由基類中的建構函式進行初始化。

建構函式不能夠被繼承,因此,派生類的構 造函式必須通過呼叫基類的建構函式來初始化基 類子物件。所以,在定義派生類的建構函式時除 了對自己的資料成員進行初始化外,還必須負責 呼叫基類建構函式使基類資料成員得以初始化。 如果派生類中還有子物件時,還應包含對子物件 初始化的建構函式。

注意:建構函式的呼叫順序:先祖先(基類) ,再客人(成員對 象),後自己(派生類) 。

案例一:

#include using namespace std;

class a

m(int i,int j)

void print(){cout執行結果:

1)派生類建構函式中可以省略對基類構造函 數的呼叫,其條件是在基類中必須有預設的 建構函式,或者根本沒有定義建構函式。  

2)若基類建構函式有引數,則派生類必須定 義建構函式,提供將引數傳遞給基類構造函 數。   

《未完待續》

繼承關係的構造和析構

構造執行順序。父類 子類 父類的構造在子類初始化列表中呼叫,先執行初始化列表 析構執行順序。子類 父類 先呼叫析構,在 物件的空間,包含父類代表父類的生命週期結束,再呼叫父類的 構造先呼叫父類,預設的呼叫的是沒有引數,想執行帶引數的也需要在初始化列表中指定 include using namespa...

繼承中的構造和析構

子類的建構函式必須對繼承而來的成員進行初始化 1.直接通過初始化列表或者賦值的方式進行初始 2.呼叫父類建構函式進行初始化 父類建構函式在子類中的呼叫方式 1.預設呼叫.適用無參建構函式和使用預設引數的建構函式 2.顯示呼叫.通過初始化列表進行呼叫,適用於所有父類的建構函式 例子 class chi...

構造和析構

當程式設計師呼叫create和destroy時,編譯器會自動在他們兩端插入 classcreate和 classdestroy的 真正實現構造和析構的全域性過程 classcreate和 classdestroy,create和destroy的作用是在構造後和析構前初始化和反初始化物件成員。即乙個物...