智慧型指標 實現unique ptr

2021-09-25 08:45:49 字數 623 閱讀 6481

之前介紹了auto_ptr實現,但其並不完美,當然也不「智慧型」,鑑於之前的auto_ptr實現了簡單的資源管理權的轉移,下面來看一下另一種思想的unique_ptr。

在unique_ptr中為了避免繁瑣的拷貝、賦值出現的問題,unique_ptr更像是乙個油鹽不進的老頑固,別人怎麼說,他也不聽,直接讓別人拿不到自己的東西:c++98中是,將拷貝、賦值定義為private屬性;c++11中直接將其delete了。

template class unique_ptr

t* operator->()

t& operator.()

~unique_ptr() }

private:

//c++98中處理方式

unique_ptr& operator=(unique_ptrconst &);

unique_ptr(unique_ptrconst &);

//c++11中的處理方式

unique_ptr& operator=(unique_ptrconst &) = delete;

unique_ptr(unique_ptrconst &) = delete;

t* _ptr;

};

智慧型指標 unique ptr

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

簡易實現unique ptr智慧型指標

c 11的unique ptr智慧型指標 一旦建立,就指向那塊記憶體,以後再也不能讓其它的智慧型指標指向同一塊記憶體。這個指標實現比較簡單,只需定義乙個類的例項時,自己類內部刪除拷貝建構函式和刪除賦值運算子過載函式就可以了。include using namespace std templatecl...

c 智慧型指標 unique ptr

智慧型指標是基於raii機制實現的類 模板 具有指標的行為 過載了operator 與operator 操作符 可以 智慧型 地銷毀其所指物件。c 11中有unique ptr shared ptr與weak ptr等智慧型指標,可以對動態資源進行管理 unique ptr 唯一 擁有其所指物件,同...