c++ 11 主要有3個智慧型指標std::unique_ptr、std::shared_ptr和std::weak_ptr
std::unique_ptr 是唯一智慧型指標,不能夠賦值。但是能夠通過move函式轉移指標指向的物件,被move後原指標則不再指向託管物件
因此,當需要智慧型指標用於純
c++
物件時,可使用
unique_ptr
,而當構造
unique_ptr
時,可使用
make_unique helper
函式。
std::shared_ptr
是可以共享的智慧型指標,通過引用計數的方式記錄指標物件被引用的次數。當進行賦值時,
2個共享智慧型指標指向同乙個記憶體塊,引用計數增加。當引用計數為零時,才會刪除記憶體控制塊
std:week_ptr:
是輔助shared_ptr
的指標,因為它不具有普通指標的行為,沒有過載
operator*
和->,
但可以使用
lock
獲得乙個可用的
shared_ptr
物件,它的最大作用在於協助
shared_ptr
工作,像旁觀者那樣觀測資源的使用情況.
c 智慧型指標
auto prt 它是 它所指向物件的擁有者 所以當自身物件被摧毀時候,該物件也將遭受摧毀,要求乙個物件只有乙個擁有者,注意 auto prt 不能使用new 來分配物件給他 include include using namespace std template void bad print au...
c 智慧型指標
很久沒寫部落格了,不知道如何表達了,哈哈.我先介紹一下深淺拷貝.class copy 此時a.ptr和b.ptr指向同乙個物件,當我們delete a.ptr時 b.ptr所指向的物件已經不存在了,要是我們引用b.ptr指向的物件也就會出問題了.深拷貝 把a.ptr所指向的物件拷貝乙份給b.ptr ...
c 智慧型指標
記得前不久有一次面試被問到智慧型指標的實現,當時對智慧型指標只是聽說但沒有了解過,就亂七八糟地說了一遍。今天寫了一遍智慧型指標,用了引用計數的概念。主要思想就是,用乙個新類對原本需要的型別進行了一層封裝,這個新類中儲存了原本的物件指標和乙個引用計數的指標,之所以全部用指標來儲存,就是因為會出現多個新...