構造執行順序。 父類—>子類 父類的構造在子類初始化列表中呼叫,先執行初始化列表
析構執行順序。 子類—>父類 先呼叫析構,在**物件的空間,包含父類代表父類的生命週期結束,再呼叫父類的
構造先呼叫父類,預設的呼叫的是沒有引數,想執行帶引數的也需要在初始化列表中指定
#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 輸出結果如下 結果很明顯了,子類構造時,先呼叫父親的建...