*注意點*
1> 不能用auto_ptr管理陣列指標(析構時用delete p方式釋放)。
2> 缺少引用計數機制。賦值和拷貝時,原始的auto_ptr被釋放(pointee變為null)。
3> 一塊記憶體不能同時被兩個auto_ptr管理,否則會出現記憶體重複釋放的問題。
*實現要點*
1> 過載訪問符號* 和->。
template
inline t& auto_ptr::operator *() const
return *pointee;
template
inline t* auto_ptr::operator -> () const
return pointee;
2> 特殊處理賦值與拷貝建構函式,使用release釋放原來的auto_ptr物件。
template
template
inline auto_ptr& auto_ptr::operator = (auto_ptr& rhs)
if (this != &rhs) reset(rhs.release());
return *this;
template
template
inline auto_ptr::auto_ptr(auto_ptr& rhs)
:pointee(rhs.release())
3> 顯式宣告建構函式,防止指標隱式轉換
explicit auto_ptr(t *p = 0); //防止隱式轉換
MQ使用經驗總結
mq使用經驗總結 mq經驗總結 首先了解什麼是mq?mq的作用是什麼?mq是通訊中介軟體。他的作用是省去開發人員開發通訊工具的時間,節省開發成本,提高開發效 率。mq的使用,如何安裝mq?根據以往的經驗,win版的mq比較容易安裝,傻瓜式,一路next就可以。aix版本的用 itty安裝。linux...
Less 使用 經驗總結
案例一 cons 80px myloop counter,i 0 when i counter out ptzcontrol over myloop counter,i 1 next iteration myloop 9 生成的css檔案如下 用sublime的less2css外掛程式自動生成的 s...
sourceTree使用經驗總結
1.公司的git 使用者名稱 yihn 密碼 略 2.安裝git客戶端 sourcetree 3.可以連線到你託管在bitbucket stash microsoft tfs或github中的 庫 4.設定 新增遠端倉庫 5.工具 選項新增預設使用者資訊,電子郵件,ssh秘鑰等 6.一般建立本地gi...