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