1. 程式人生 > >C++11 學習筆記

C++11 學習筆記

筆記 c++11 使用 ++ har sha 不可 c++ 內存

unique_ptr 可以實現如下功能:

1、為動態申請的內存提供異常安全

2、講動態申請的內存所有權傳遞給某函數

3、從某個函數返回動態申請內存的所有權

4、在容器中保存指針

5、auto_ptr 應該具有的功能

share:

從名字share就可以看出了資源可以被多個指針共享,它使用計數機制來表明資源被幾個指針共享。可以通過成員函數use_count()來查看資源的所有者個數。出了可以通過new來構造,還可以通過傳入auto_ptr, unique_ptr,weak_ptr來構造。當我們調用release()時,當前指針會釋放資源所有權,計數減一。當計數等於0時,資源會被釋放。

weak_ptr:

weak_ptr是用來解決shared_ptr相互引用時的死鎖問題,如果說兩個shared_ptr相互引用,那麽這兩個指針的引用計數永遠不可能下降為0,資源永遠不會釋放。它是對對象的一種弱引用,不會增加對象的引用計數,和shared_ptr之間可以相互轉化,shared_ptr可以直接賦值給它,它可以通過調用lock函數來獲得shared_ptr。

C++11 學習筆記