C 類的繼承中建構函式和析構函式呼叫順序例子

2021-07-27 09:28:53 字數 593 閱讀 5691

/*當建立乙個物件時,首先呼叫基類的建構函式,然後呼叫下乙個派生類的

建構函式,依次類推,直至到達派生類次數最多的派生次數最多的類的建構函式為止。

簡而言之,物件是由「底層向上」開始構造的。因為,建構函式一開始構造時,總是

要呼叫它的基類的建構函式,然後才開始執行其建構函式體,呼叫直接基類建構函式時,

如果無專門說明,就呼叫直接基類的預設建構函式。在物件析構時,其順序正好相反。

下面的這個程式說明這個問題*/

1 #include 2

3using

namespace

std;45

classa6

10 ~a()

11protected:12

private:13

};14

15class b:publica16

19 ~b()

20};

2122

23int

main()

24

列印出結果:

aaabbb

wwwww

qqqq

證明構造是由基類向下,析構是由子類向上。

C 繼承中的建構函式和析構函式

1 繼承中建構函式和析構函式呼叫順序 a 呼叫父類建構函式 b 呼叫其他成員的建構函式 c 呼叫子類建構函式 d 析構呼叫順序相反。include using namespace std class base public base cout base中的預設構造函式呼叫 2 子類預設呼叫父類的預設...

類繼承中建構函式和析構函式的呼叫

類繼承中建構函式和析構函式的呼叫 現在,有三個類,類的定義如下 class ca class cb public ca 這個程式執行結果是 ca constructor cb constructor cc constructor cc desstructor cb desstructor ca de...

C 類繼承中的建構函式和析構函式 呼叫順序

在c 的類繼承中,建構函式不能被繼承 c11中可以被繼承,但僅僅是寫起來方便,不是真正的繼承 建立物件時,首先呼叫基類的建構函式,然後在呼叫下乙個派生類的建構函式,依次類推 析構物件時,其順序正好與構造相反 if 子類沒有自定義建構函式 if 基類沒有自定義建構函式 用子類定義物件時,先自動呼叫基類...