/*當建立乙個物件時,首先呼叫基類的建構函式,然後呼叫下乙個派生類的
建構函式,依次類推,直至到達派生類次數最多的派生次數最多的類的建構函式為止。
簡而言之,物件是由「底層向上」開始構造的。因為,建構函式一開始構造時,總是
要呼叫它的基類的建構函式,然後才開始執行其建構函式體,呼叫直接基類建構函式時,
如果無專門說明,就呼叫直接基類的預設建構函式。在物件析構時,其順序正好相反。
下面的這個程式說明這個問題*/
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 基類沒有自定義建構函式 用子類定義物件時,先自動呼叫基類...