C 智慧型指標

2021-08-08 17:09:56 字數 647 閱讀 3635

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 智慧型指標

記得前不久有一次面試被問到智慧型指標的實現,當時對智慧型指標只是聽說但沒有了解過,就亂七八糟地說了一遍。今天寫了一遍智慧型指標,用了引用計數的概念。主要思想就是,用乙個新類對原本需要的型別進行了一層封裝,這個新類中儲存了原本的物件指標和乙個引用計數的指標,之所以全部用指標來儲存,就是因為會出現多個新...