c c 陣列的智慧型指標 使用

2022-05-18 01:35:01 字數 664 閱讀 8563

1,unique_ptr的陣列智慧型指標,沒有*和->操作,但支援下標操作

2,shared_ptr的陣列智慧型指標,有*和->操作,但不支援下標操作,只能通過get()去訪問陣列的元素。

3,shared_ptr的陣列智慧型指標,必須要自定義deleter

小例子

#include #include #include using namespace std;

class test

~test()

void fun()

public:

int data;

};int main());

(sp.get())->data = 2;//陣列的第乙個元素

sp->data = 10;

test& st = *sp;

st.data = 20;

(sp.get() + 1)->data = 3;//陣列的第二個元素

return 0;

}

github完整**

c c 智慧型指標 unique ptr 使用

智慧型指標 unique ptr 使用 操作功能描述 unique ptru q 智慧型指標u管理內建指標q所指向的物件 q必須指向new分配的記憶體,且能夠轉換為t unique ptru u,d 用型別為d的物件d來代替delete u nullptr 釋放u指向的物件,並將u置為空 u.rel...

C C 和指標 auto ptr智慧型指標

一,建構函式與析構函式 auto ptr在構造時獲取對某個物件的所有權 ownership 在析構時釋放該物件。我們可以這樣使用auto ptr來提高 安全性 int p new int 0 auto ptrap p 從此我們不必關心應該何時釋放p,也不用擔心發生異常會有記憶體洩漏。這裡我們有幾點要...

智慧型指標和陣列

預設情況下,std shared ptr會呼叫delete來清空記憶體。當使用new 分配記憶體時,需要呼叫delete 來釋放記憶體,否則會有記憶體洩露。可以通過以下 來自定義釋放記憶體的函式 1 template typename t 2 struct array deleter 3 8 通過以...