本文**:
話不多說直接上碼!
//shared_ptr的簡單實現版本 基於引用記數的智慧型指標
namespace boost //空間庫boost
templateshared_ptr(y* py)
shared_ptr(constshared_ptr& r) : px(r.px)
templateshared_ptr(constshared_ptr& r)//用於 多型 :乙個介面多種實現方法
//過載
shared_ptr& operator=(const shared_ptr& r) throw()
templateshared_ptr& operator=(const shared_ptr& r)//用於多型
~shared_ptr()
void reset(t* p=0)
else
catch (...) // catch
} // allocate newreference counter
*pn = 1;
px = p;
} // reset
reference operator*()const throw()
pointer operator->()const throw()
pointer get() constthrow()
size_type use_count() constthrow()//
bool unique() const throw()//
private:
void dispose() throw()
} }; // shared_ptr
templateinline bool operator==(shared_ptrconst & l, shared_ptrconst & r)
templateinline bool operator!=(shared_ptrconst & l, shared_ptrconst & r)
}
這是它的基本實現原理,接下來來乙個它的實際例子,應用很簡單!
#include#includeusing namespace std;
class x
智慧型指標share ptr記錄
shared ptr 是乙個共享所有權的智慧型指標,允許多個指標指向同乙個物件。shared ptr 物件除了包括乙個物件的指標,還包括乙個引用計數器。當每給物件分配乙個share ptr的時候,引用計數加一 每reset乙個share ptr,或者修改物件的指向 指向其他物件或者賦值nullptr...
共享智慧型指標 SharePtr 的C 實現
主要實現思想是引用計數法,在shareptr類拷貝 copy 和賦值 的時候引用計數加1,而在shareptr類變數析構的時候引用計數減少1 1 shareptr包裹類變數指標和引用計數指標int 這裡引用計數採用 int 為了在各個shareptr變數實現計數共享,每個變數的計數變化都會影響其他計...
智慧型指標(簡單版)
include 智慧型指標,物件導向的指標。該指標可以實現自動 記憶體的功能。通過將指標交給物件來管理,物件放到棧中,棧由系統進行管理,來實現自動 功能,獨闢蹊徑,妙啊。實現該智慧型指標的主要問題在於運算子的過載上。template class smartptr smartptr t operato...