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 通過以...