繼承關係的構造和析構

2021-09-27 10:43:05 字數 593 閱讀 4356

構造執行順序。 父類—>子類 父類的構造在子類初始化列表中呼叫,先執行初始化列表

析構執行順序。 子類—>父類 先呼叫析構,在**物件的空間,包含父類代表父類的生命週期結束,再呼叫父類的

構造先呼叫父類,預設的呼叫的是沒有引數,想執行帶引數的也需要在初始化列表中指定

#include using namespace std;

// 構造執行順序。 父類--->子類 父類的構造在子類初始化列表中呼叫,先執行初始化列表

// 析構執行順序。 子類--->父類 先呼叫析構,在**物件的空間,包含父類代表父類的生命週期結束,再呼叫父類的

// 構造先呼叫父類,預設的呼叫的是沒有引數,想執行帶引數的也需要在初始化列表中指定

class cperson // 基類(父類)

~cperson() };

class csuperman : public cperson

~csuperman() };

int main()

system("pause");

return 0;

}

繼承中的構造和析構

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

繼承中構造析構

在繼承中面臨乙個問題就是 我們的基類和派生類都有各自的建構函式和析構函式,那麼再例項化派生類成員的時候,這個構造析構的順序是怎麼樣的呢?class animal animal void setm int a 0 intgetage private int age 我們構造了個動物類,我們需要繼續構造...

繼承的構造與析構

子類物件在構造時,先呼叫父類的建構函式,然後再呼叫自己的建構函式,析構順序相反。看下測試 include include using namespace std class grandparent public grandparent cout 輸出結果如下 結果很明顯了,子類構造時,先呼叫父親的建...