關於auto ptr的忠告

2021-09-12 05:06:49 字數 333 閱讀 9112

1.auto_ptr不能用於陣列,因為它呼叫的是delete,不是delete。 

2.auto_ptr上只用於區域性,盡可能不要用它共享記憶體。它的出現是為了防止異常情況下的記憶體洩露。

3.全域性的指標一般來說是用於共享一塊記憶體,你應該在你的程式初始化時初試這快記憶體,程式執行結束時釋放記憶體,以防止共享失敗。使用auto_ptr完全莫名其妙。

4.auto_ptr永遠不要做copy,copy了就表示你極有可能將來失去控制。

5.auto_ptr永遠不要做左值,即使是在初始化時候,因為auto_ptr做右值會導致copy行為,而非auto_ptr右值不能隱式轉換為auto_ptr。

關於智慧型指標auto ptr

智慧型指標auto ptr和shared ptr也是面試中經常被問到的乙個 感覺看auto ptr的原始碼反而更加容易理解一些,因為原始碼的 量並不大,而且比較容易理解。本篇主要介紹auto ptr 其特點如下 1.首先auto ptr智慧型指標是個封裝好的類 2.是採用棧上的指標去管理堆上的內容,...

auto ptr 與 delete 的區別

template class auto ptr 這是auto ptr類,可知auto ptr建立的是乙個類物件,當這個物件消失時,會自動呼叫析構函式 auto ptr 讓我們來看看 auto ptr 函式的實現 auto ptr 這裡呼叫了delete。所以它們的不同就是 auto ptr建立的是乙...

AutoPtr 的侷限性

因為std auto ptr是轉移語義,而stl容器的元素必須是值語義,也就是拷貝語義的。比如,stl容器都是以副本的形式來儲存元素。std vectorv int a 1 v.push back a v 0 也是值為1的int,但不是a.僅僅是乙個副本.a的值也並未被改變.std auto ptr...