代碼實踐:


輸出結果:

注解:我們可以看到,先定義了一個Child對象,然后最先訪問Object帶參構造函數,然后再是Parent帶參構造函數(說白了就是父類先觸發),然后在子類Child中又包含了組合關系(也就是客人),然后Object類中的帶參構造函數,最后再觸發自身的帶參構造函數。
二、子類對象的析構
1、析構函數的調用順序與構造函數相反
(1)執行自身的析構函數
(2)執行成員變量的析構函數
(3)執行父類的析構函數
代碼實踐:



輸出結果:

三、總結:
子類對象在創建時需要調用父類構造函數進行初始化
先執行父類構造函數然后執行成員的構造函數
父類構造函數顯示調用需要在初始化列表中進行
子類對象在銷毀時需要調用父類析構函數進行清理
析構順序與構造順序對稱相反