C++知識點(3)_unique_ptr智能指針的使用

unique_ptr某個時刻只能有一個unique_ptr指向一個給定的對象,當unique_ptr被銷燬時它所指向的對象也被銷燬。
常規使用:
持有對對象的獨有權,即兩個unique_ptr 不能指向一個對象,不能進行復制操作只能進行移動操作
unique_ptr 可能未指向對象,這時的狀態成爲empty
簡單介紹:

unique_ptr<T> u1;//空unique_ptr,u1使用delete來釋放T類型的指針。
unique_ptr<T,D> u2(T*,d);//用T*指針和類型D的對象d初始化u2,此時使用d 來替代模式的deleter刪除器。
u.release();//u放棄當前指針的控制權,並將u置空,返回所管理的指針。

std::unique_ptr<int> p1(new int(5));//智能指針p1指向一個可存放5個int 型數據的內存空間
std::unique_ptr<int> p2=p1;//編譯出錯,因爲兩個unique_ptr不可以指向一個對象
std::unique_ptr<int> p3=std::move(p1);//轉移所有權,現在那塊內存屬於p3指針,P1爲無效指針
p3.reset();//釋放內存
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章