希望對新手理解c++中智慧型指標的實現原理有所幫助,第一次上傳**,望各路道友多多指教。
#ifndefsmart_ptr_h
#definesmart_ptr_h
#include
#include
template<
typename
_tr>
classsmart_ptr
smart_ptr
(const
smart_ptr
&other
)
}
//空初始化
smart_ptr
()
//釋放
~smart_ptr
()
public:
//拷貝(遞減原有計數、增加新計數)
smart_ptr
&operator=(
const
smart_ptr
&other
)
return
*this
;
}
//解引
_troperator
*()
//模擬指標呼叫
pointtype
operator
->()
private:
//遞增計數,並且返回計數
intincrease(
long
address
)
else
#ifdefptr_debug
std::cout
<<
"address:"
<<
address
<<
"count:"
<<
count
<<
std::endl;
#endif
return
count
;
}
//遞減計數,並且返回計數
intdegression(
long
address
)
#ifdefptr_debug
std::cout
<<
"address:"
<<
address
<<
"count:"
<<
count
<<
std::endl;
#endif
}
return
count
;
}
void
releaseptr()
}
}
//
static
std::
map<
long
,int
>
addresscontainer_;
pointtype
ptr_;
};
template<
typename
_tr>
std::map
<
long
,int
>
smart_ptr
<
_tr>::addresscontainer_;
#endif//smart_ptr_h
C 智慧型指標示例
body p div td 使用智慧型指標的乙個示例 class u ptr u ptr class hasptr int get ptr val const int get val const void set int int i void set ptr int p void set ptr v...
C 智慧型指標原理
智慧型指標 smart pointer 是儲存指向動態分配 堆 物件指標的類,用於生存期控制,能夠確保自動正確的銷毀動態分配的物件,防止記憶體洩露。它的一種通用實現技術是使用引用計數 reference count 智慧型指標類將乙個計數器與類指向的物件相關聯,引用計數跟蹤該類有多少個物件共享同一指...
C 智慧型指標原理
1.c 智慧型指標 2.c 智慧型指標簡單剖析 3.智慧型指標 auto ptr 詳解 4.c 智慧型指標詳解 5.請你介紹一下c 的智慧型指標 牛客網 在c 程式裡,使用new關鍵字開闢的記憶體必須被手動delete掉,不然就會導致記憶體的洩漏,但是,當程式非常冗長,你能保證自己每乙個手動開闢的記...