繼承接口類的子類使用多態(tài)時(shí),沒有繼承父類的虛析構(gòu)函數(shù),如何保證最后會(huì)執(zhí)行子類的析構(gòu)函數(shù)?
繼承接口類的子類使用多態(tài)時(shí),沒有繼承父類的虛析構(gòu)函數(shù),如何保證最后會(huì)執(zhí)行子類的析構(gòu)函數(shù)?
比如:
Fu *fu = new Zi();????//Fu類是個(gè)借口類,指向子類對(duì)象。
delete fu;?????//Fu類中沒有純析構(gòu)函數(shù),這樣的話是怎么執(zhí)行的?子類的析構(gòu)函數(shù)會(huì)執(zhí)行嗎?
fu = NULL;
2016-04-09
子類的析構(gòu)函數(shù)將不會(huì)執(zhí)行
2016-03-17
//Fu類中沒有純析構(gòu)函數(shù),這樣的話是怎么執(zhí)行的?子類的析構(gòu)函數(shù)會(huì)執(zhí)行嗎?
Fu類中沒有虛析構(gòu)函數(shù),delete Fu執(zhí)行父類的析構(gòu)函數(shù),此時(shí)子類析構(gòu)函數(shù)只能通過delete (子類指針)來執(zhí)行。
Fu類中有虛析構(gòu)函數(shù),delete Fu先執(zhí)行子類的析構(gòu)函數(shù)再執(zhí)行父類的析構(gòu)函數(shù)。
2016-03-11
沒辦法,虛函數(shù)列表里邊沒有析構(gòu)函數(shù),只會(huì)執(zhí)行父類的虛構(gòu)函數(shù)而不會(huì)執(zhí)行子類的虛構(gòu)函數(shù),除非定義的是子類的指針指向子類的對(duì)象。