第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

派生類的析構(gòu)函數(shù)什么情況下會被調(diào)用?

為什么基類的析構(gòu)函數(shù)不為虛的話,基類指針指向子類對象,刪除對象時,派生類的析構(gòu)函數(shù)就不會被調(diào)用?


我看到的解釋就是如果基類析構(gòu)函數(shù)不是虛函數(shù),Base *d = new Derived(); 這樣定義的d在析構(gòu)的時候只會調(diào)用Base自己的析構(gòu)函數(shù),delete d; 運(yùn)行的時候,Derived自己的數(shù)據(jù)成員不會被銷毀,造成內(nèi)存泄漏。?


這是為什么呢?為什么可以調(diào)用子類的構(gòu)造函數(shù)卻不能調(diào)用子類的析構(gòu)函數(shù),這種規(guī)則不理解,析構(gòu)函數(shù)到底在什么情況下才一定會被調(diào)用?

正在回答

1 回答

計(jì)算機(jī)規(guī)定是這樣執(zhí)行的,定義子類會自動實(shí)例化父類,刪除子類會把因?yàn)閷?shí)例化子類而實(shí)例化的父類刪除,相反刪除父類不會刪除子類,如果要刪除需要用虛析構(gòu)函數(shù)

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕UI8711183 提問者

你說的這些規(guī)則我知道,我想知道為什么,也是執(zhí)行的時候,內(nèi)存里面是怎么操作的?
2016-08-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

海風(fēng)3 回復(fù) 慕UI8711183 提問者

不清楚你哪里有疑惑。。你可以百度一下
2016-08-06 回復(fù) 有任何疑惑可以回復(fù)我~
#3

瀟慕粉 回復(fù) 慕UI8711183 提問者

父類指針指向子類對象,父類指針就能指向子類的對象內(nèi)存,就能指向子類的虛函數(shù)表指針,虛函數(shù)表里面有子類的析構(gòu)函數(shù)指針,從而實(shí)現(xiàn)子類的析構(gòu)函數(shù)。系統(tǒng)會自動調(diào)用父類析構(gòu)函數(shù)。
2017-03-14 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
C++遠(yuǎn)征之多態(tài)篇
  • 參與學(xué)習(xí)       66225    人
  • 解答問題       329    個

本教程將帶領(lǐng)大家體會面向?qū)ο笕筇匦灾械亩鄳B(tài)特性

進(jìn)入課程

派生類的析構(gòu)函數(shù)什么情況下會被調(diào)用?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號