c c 智慧型指標 unique ptr 使用

2022-05-18 01:35:06 字數 930 閱讀 1734

智慧型指標 unique_ptr 使用

操作功能描述

unique_ptru(q)

智慧型指標u管理內建指標q所指向的物件;q必須指向new分配的記憶體,且能夠轉換為t*。

unique_ptru(u, d)

用型別為d的物件d來代替delete

u = nullptr

釋放u指向的物件,並將u置為空

u.release()

u放棄對指標的控制權,返回內建指標,並將u置為空

u.reset()

釋放u所指向的物件,並將u置為空。

u.reset(q)

如果還傳遞了引數q,讓u指向q

u.reset(q, d)

如果還傳遞了引數d,將會呼叫d,而不是delete來釋放q

小例子索引

**塊功能描述

test1

不可以拷貝和賦值

test2

自定義刪除器

test3

reset和release的使用

test4

unique_ptr作為函式的返回值

小例子

include #include #include using namespace std;

class test

~test()

private:

int data;

};void my_deleter(test* t)

unique_ptrcl1(int p)

unique_ptrcl2(int p)

void fl1(unique_ptrp)

int main()

github完整**

智慧型指標 unique ptr

unique ptr 是 c 11 提供的用於防止記憶體洩漏的智慧型指標中的一種實現,獨享被管理物件指標所有權的智慧型指標。int main std move是將物件的狀態或者所有權從乙個物件轉移到另乙個物件,只是轉移,沒有記憶體的搬遷或者記憶體拷貝所以可以提高利用效率,改善效能.get函式會返回儲...

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操作...