亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

關于析構函數

自己定義的析構函數能消除定義的對象嗎?已經有delete p ?為什么還要調用自己編寫的析構函數? 好像不是很明白

正在回答

2 回答

new出來的對象是需要手動delete掉的,在delete的時候,系統會調用你寫的析構函數,給你一個自己釋放資源的機會

0 回復 有任何疑惑可以回復我~
#1

全棧港 提問者

也就是說,如果程序員編寫的析構函數沒有釋放,系統會自動給你生成并調用系統編寫的析構函數來示放內存嗎?
2016-01-06 回復 有任何疑惑可以回復我~
#2

絮絮念秋風 回復 全棧港 提問者

C++沒有GC(垃圾回收機制),所以手動申請的內存需要手動釋放(new->delete,malloc->free),系統的析構函數里面啥都沒干,只是把非“堆內存(動態申請的內存)”釋放掉。所以你還需要自己在析構函數里面手動釋放,否則有內存泄露。
2016-01-07 回復 有任何疑惑可以回復我~
#3

全棧港 提問者

非常感謝!
2016-01-07 回復 有任何疑惑可以回復我~

p是從堆中申請的內存,無法自動釋放 需要程序員自己釋放內存。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之封裝篇(上)
  • 參與學習       103391    人
  • 解答問題       732    個

封裝--面向對象的基石,本教程力求幫助小伙伴們即學即會

進入課程

關于析構函數

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號