目的:new出來的物件,需要程式設計師自己釋放堆上的空間,智慧型指標就是把堆上的空間同棧一起釋放
過載:* -> ,讓智慧型指標像普通指標一樣使用
**分析更簡單明瞭
#include
using
namespace std;
class
person
void
showage()
~person()
private
:int m_age;};
//智慧型指標類
class
smartpointer
//過載->,像person *p 的p一樣去使用物件
person *
operator
->()
//過載*
person&
operator*(
)//智慧型指標析構時,帶走person
~smartpointer()
}private
: person * m_person;};
void
test01()
intmain()
智慧型指標的初步認識
開闢了記憶體空間,必定要釋放記憶體空間,如果不釋放就會造成記憶體洩漏,引發安全問題。如果 量很少的時候,我們會記得釋放掉開闢的空間,但是如果 量過大,我們會忘記開闢的空間,那麼就需要智慧型指標來幫助我們自動釋放空間。例如 include intmain 有了智慧型指標,下面的釋放空間的語句我們就不需...
智慧型指標實現
namespace smart smart count 增加引用計數,並返回計數值.intaddref 減少引用計數,並返回計數值.intrelease private 計數變數.intuse count 智慧型指標.template class t class smart ptr 構造空指標.ex...
實現智慧型指標
資源的轉移不推薦使用。舊庫使用擁有者會導致野指標 實現 template class autoptr autoptr autoptr ap ptr ap.ptr autoptr operator autoptr ap return this autoptr t getptr const t getp...