什么是智能指針,什么時候應該使用?
3 回答

阿波羅的戰(zhàn)車
TA貢獻1862條經驗 獲得超6個贊
智能指針是類似指針的類型,具有一些附加功能,例如自動內存釋放,引用計數等。
小型介紹可在頁面上找到智能指針 - 什么,為什么,哪個?。
其中一個簡單的智能指針類型是std::auto_ptr
(C ++標準的第20.4.5節(jié)),它允許在超出范圍時自動釋放內存,并且在拋出異常時比簡單指針使用更強大,盡管靈活性較低。
另一個方便的類型是boost::shared_ptr
實現引用計數,并在沒有對象的引用時自動釋放內存。這有助于避免內存泄漏,并且易于使用來實現RAII。
題目在David Vandevoorde,Nicolai M. Josuttis,第20章,智能指針的書“C ++模板:完整指南”中有詳細介紹。涉及的一些主題:
防范異常
持有者,(注意,std :: auto_ptr是這種智能指針的實現)
資源獲取是初始化(這經常用于C ++中的異常安全資源管理)
持有人限制
并發(fā)計數器訪問
破壞和解除分配
- 3 回答
- 0 關注
- 1244 瀏覽
添加回答
舉報
0/150
提交
取消