3 回答

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