unique_ptr 是 c++ 11 提供的用於防止記憶體洩漏的智慧型指標中的一種實現,獨享被管理物件指標所有權的智慧型指標。
int main()
std::move是將物件的狀態或者所有權從乙個物件轉移到另乙個物件,只是轉移,沒有記憶體的搬遷或者記憶體拷貝所以可以提高利用效率,改善效能.。
get函式會返回儲存的指標。如果由unique_ptr不為空,則儲存的指標指向由unique_ptr管理的物件,否則指向nullptr。
#include#include#include#include#include#include#includeusing namespace std;
int main()
{ unique_ptrnum(new int(23));
cout<<"value="<<*num<<" "<<" addr="cout<<"value="<<*num1<<" "<<" addr="《執行結果:
value=23 addr=0x5583e82e2e70
value=23 addr=0x5583e82e2e70
c 智慧型指標 unique ptr
智慧型指標是基於raii機制實現的類 模板 具有指標的行為 過載了operator 與operator 操作符 可以 智慧型 地銷毀其所指物件。c 11中有unique ptr shared ptr與weak ptr等智慧型指標,可以對動態資源進行管理 unique ptr 唯一 擁有其所指物件,同...
C 智慧型指標 unique ptr
unique ptr 唯一 擁有其所指物件,同一時刻只能有乙個unique ptr指向給定物件 通過禁止拷貝語義 只有移動語義來實現 unique ptr指標本身的生命週期 從unique ptr指標建立時開始,直到離開作用域。離開作用域時,若其指向物件,則將其所指物件銷毀 預設使用delete操作...
智慧型指標 實現unique ptr
之前介紹了auto ptr實現,但其並不完美,當然也不 智慧型 鑑於之前的auto ptr實現了簡單的資源管理權的轉移,下面來看一下另一種思想的unique ptr。在unique ptr中為了避免繁瑣的拷貝 賦值出現的問題,unique ptr更像是乙個油鹽不進的老頑固,別人怎麼說,他也不聽,直接...