析構(gòu)什么意思 派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是怎樣的?
派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是怎樣的?多繼承派生類構(gòu)造函數(shù)的執(zhí)行順序是先執(zhí)行所有基類的構(gòu)造函數(shù)(按定義派生類時(shí)指定的順序),然后執(zhí)行派生類的構(gòu)造函數(shù)。析構(gòu)函數(shù)的執(zhí)行順序與構(gòu)造函數(shù)的完全相反(因?yàn)?/p>
派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是怎樣的?
多繼承派生類構(gòu)造函數(shù)的執(zhí)行順序是先執(zhí)行所有基類的構(gòu)造函數(shù)(按定義派生類時(shí)指定的順序),然后執(zhí)行派生類的構(gòu)造函數(shù)。析構(gòu)函數(shù)的執(zhí)行順序與構(gòu)造函數(shù)的完全相反(因?yàn)閿?shù)據(jù)存儲在堆棧上)。單一繼承首先執(zhí)行基類構(gòu)造函數(shù),而派生類構(gòu)造函數(shù)執(zhí)行,析構(gòu)函數(shù)按相反的順序執(zhí)行。
為什么基類與派生類的析構(gòu)函數(shù)不一樣,卻可以實(shí)現(xiàn)多態(tài)?
基類析構(gòu)函數(shù)是虛擬函數(shù)嗎?也就是說:virtual~base()//如果基類的虛虛函數(shù)不是,則使用以下代碼:base class pointer=derived class address delete base class pointer//調(diào)用基類析構(gòu)函數(shù)即可