天天看點

Effective C++ 學習心得——資源管理 一、條款: 二、總結:

前言:

繼續利用空餘時間來複習Effective C++

我的github:

寒假刷了150題的leetcode,現在也放在了我的github裡,不僅僅有每一題的解題代碼,還記錄了我解題的時候的思路,以及遇上的問題。是一個很好的總結,歡迎大家前去參觀。

https://github.com/YinWenAtBIT

一、條款:

13:以對象管理資源:

以智能指針管理指針,可以再不使用指針之後,自動銷毀指針所指的記憶體,例如auto_ptr, shared_ptr, scoped_ptr。如果需要管理對象數組,即調用delete []銷毀,可以使用boost::scoped_array和boost::shared_array。

14:資源管理類中小心copy行為:

管理非記憶體對象資源的時候,例如mutex互斥量,就需要注意類的複制行為,可以通過禁止複制,或者引用計數的方式實作管理。

15:在資源管理類中提供對原始資源的通路:

提供一個顯式轉換:get()方法。

16:成對使用new和delete的時候要采用相同的形式:

new 對 delete, new [] 對delete []。

盡量不要對數組形式做typedef 動作。因為容易讓人誤會,使用new的時候,轉換後實際上調用的new []。

17:以獨立語句将newed對象置入智能指針:

不要把将指針放入智能指針對象的語句和其他語句合并,因為一旦抛出異常,容易導緻難以察覺的資源洩露。

二、總結:

該章節中所學的内容基本都熟悉了。再複習一遍感覺了解更深刻。

繼續閱讀