C 繼承中的構造和析構

2021-09-11 21:18:50 字數 631 閱讀 2997

在c++的繼承中,在子類物件構造時,需要呼叫父類建構函式對其繼承來的成員進行初始化,在子類進行析構時,需要呼叫父類的析構函式對其繼承來的成員進行清理,過程如下:

(1)子類物件在建立時會首先呼叫父類的建構函式

(2)父類建構函式執行結束後,執行子類的建構函式

(3)當父類的建構函式有引數時,需要在子類的初始化列表中顯示呼叫

(4)析構函式的呼叫先後順序與建構函式相反

(5)如果   子類1:父類1,父類1:父類2,那麼初始化子類1的時候將首先呼叫父類2的建構函式,然後為父類1

#include using namespace std;

class parent

private:

int a;

int b;

};class child : public parent

private:

};int main()

**編譯不通過,原因是父類重寫了有參的建構函式,我們需要為父類提供引數,因此c++編譯器為我們提供了如下解決方法:

child1(int a,int b,int c) : parent1(a,b)
通過子類的建構函式為父類傳參

C 繼承中的構造和析構

先 呼叫父類建構函式 在呼叫 子類建構函式 析構的順序 和構造相反 1 子類物件在建立時會首先呼叫父類的建構函式 2 父類建構函式執行結束後,執行子類的建構函式 3 當父類的建構函式有引數時,需要在子類的初始化列表中顯示呼叫 4 析構函式呼叫的先後順序與建構函式相反 class parent par...

C 繼承中的構造和析構

1,構造 物件在建立的後所要做的一系列初始化的工作 析構 物件在摧毀之前所要做的一系列清理工作 2,思考 1,子類中如何初始化父類成員?1,對於繼承而言,子類可以獲得父類的 可以獲得父類中的成員變數,成員變數從父類中傳遞到子類,那麼子類物件在建立的時候如何初始化從父類中繼承的成員變數呢?2,父類建構...

繼承中的構造和析構

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