C 的智慧型指標

2021-06-18 00:34:21 字數 393 閱讀 2536

1、在可以使用 boost 庫的場合下,拒絕使用 std::auto_ptr,因為其不僅不符合 c++ 程式設計思想,而且極容易出錯。

2、在確定物件無需共享的情況下,使用 boost::scoped_ptr(當然動態陣列使用 boost::scoped_array)。

3、在物件需要共享的情況下,使用 boost::shared_ptr(當然動態陣列使用 boost::shared_array)。

4、在需要訪問 boost::shared_ptr 物件,而又不想改變其引用計數的情況下,使用 boost::weak_ptr,一般常用於軟體框架設計中。

5、最後一點,也是要求最苛刻一點:在你的**中,不要出現 delete 關鍵字(或 c 語言的 free 函式),因為可以用智慧型指標去管理。

詳見

c 智慧型指標

auto prt 它是 它所指向物件的擁有者 所以當自身物件被摧毀時候,該物件也將遭受摧毀,要求乙個物件只有乙個擁有者,注意 auto prt 不能使用new 來分配物件給他 include include using namespace std template void bad print au...

c 智慧型指標

很久沒寫部落格了,不知道如何表達了,哈哈.我先介紹一下深淺拷貝.class copy 此時a.ptr和b.ptr指向同乙個物件,當我們delete a.ptr時 b.ptr所指向的物件已經不存在了,要是我們引用b.ptr指向的物件也就會出問題了.深拷貝 把a.ptr所指向的物件拷貝乙份給b.ptr ...

c 智慧型指標

記得前不久有一次面試被問到智慧型指標的實現,當時對智慧型指標只是聽說但沒有了解過,就亂七八糟地說了一遍。今天寫了一遍智慧型指標,用了引用計數的概念。主要思想就是,用乙個新類對原本需要的型別進行了一層封裝,這個新類中儲存了原本的物件指標和乙個引用計數的指標,之所以全部用指標來儲存,就是因為會出現多個新...