1. 程式人生 > >深入學習c++--智能指針(四)--使用建議

深入學習c++--智能指針(四)--使用建議

入學 接口 isp -- div 分享 技術 nbsp 析構函數

1. 不要自己手動管理資源

技術分享圖片

2. 一個裸指針不要用兩個shared_ptr管理,unique_ptr

3. 使用shared_ptr作為函數的接口,如果有可能用 const shared_ptr&的形式

4. shared_ptr weak_ptr和裸指針相比,會大很多,並且效率上會有影響,尤其在多線程模式下。時間也上也是

可以這麽寫:

// 只進行一次new, 至少可以節省8字節
ObjectPtr obj5 = std::make_shared<Object>(3);

5. enable_shared_from_this,shared_from_this()和構造析構函數一樣,某些情況下不能使用。

6. 某些情況下,會出現內存不會降的問題。尤其是使用weak_ptr來處理循環引用的問題

7. 如果有可能,優先使用類的實例,其次萬不得已使用std::unique_ptr,萬不得已使用std::shared_ptr

深入學習c++--智能指針(四)--使用建議