派生類建構函式和析構函式的執行順序

2021-10-24 12:50:09 字數 940 閱讀 8596

#include using namespace std;

class contained1 //構造constructor

~contained1() //析構destructor

};class contained2

~contained2()

};class contained3

~contained3()

};class basecontainer

~basecontainer()

private:

contained1 c1;

contained2 c2;

};class derivedcontainer : public basecontainer

~derivedcontainer();

private:

contained3 c3;

};derivedcontainer::~derivedcontainer()

int main()

執行結果如下:

contained1 ctor

contained2 ctor

basecontainer ctor

contained3 ctor

derivedcontainer ctor

derivedcontainer dtor

contained3 dtor

basecontainer dtor

contained2 dtor

contained1 dtor

上面的示例顯示,在派生類的建構函式中,基類和成員建構函式的呼叫順序。 首先,呼叫基建構函式,然後按照基類成員在類宣告**現的順序對這些成員進行初始化,然後,呼叫派生建構函式。

析構函式的執行順序與建構函式相反,可模擬於穿衣服和**服。

派生類的建構函式和析構函式

c 學習筆記和總結 這段時間看了c 中類的繼承和派生,這應該算是c 和c語言相比最主要的乙個知識點了。不得不說類的功能是十分強大的,它定義了public,protected,private三種訪問內部成員的訪問許可權,增加了程式的安全性和保護性。通過定義類的物件可以訪問類的成員,但是定義物件是外部訪...

派生類的建構函式和析構函式

一.簡單派生類的析構函式和建構函式。1.簡單派生類建構函式的定義形式 派生類建構函式名 總參數列列 基類建構函式名 參數列列 其中,總參數列列中的引數包括派生類引數和基類引數,且基類引數放在最前面。參數列列裡中只有引數名,沒有引數型別。2.注意簡單派生類建構函式的定義形式中,中間有乙個冒號。3.參數...

派生類建構函式和析構函式的構造規則

先給出程式 includeusing namespace std class first first int x,int y first void show 此時,系統自動呼叫基類的無參建構函式 若類沒有無參建構函式,則呼叫預設的建構函式 也可以顯式的指出具體呼叫基類的哪乙個建構函式,例如 thir...