因?yàn)椋珻++中存在派生類的對(duì)象可以賦值給其基類的對(duì)象這一特點(diǎn)。
就存在一個(gè)問(wèn)題,當(dāng)在堆中申請(qǐng)一個(gè)派生類,用其基類指針去指向,在delete釋放內(nèi)存時(shí),只會(huì)調(diào)用對(duì)應(yīng)的基類的析構(gòu)函數(shù),而不會(huì)調(diào)用派生類特有的析構(gòu)函數(shù)。所以會(huì)導(dǎo)致內(nèi)存泄露,而且這個(gè)錯(cuò)誤不會(huì)被編譯器發(fā)現(xiàn)。
所以為了能釋放派生類的內(nèi)存,就有了,虛析構(gòu)函數(shù)。就是在基類的析構(gòu)函數(shù)前加上virtual ,這樣會(huì)產(chǎn)生虛析構(gòu)函數(shù)表 ,當(dāng)在你出現(xiàn)上面的情況時(shí)會(huì),自動(dòng)釋放掉派生類的內(nèi)存,從而避免了內(nèi)存泄露。
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注