智慧型指標初步認識 自己實現

2021-10-02 02:39:50 字數 639 閱讀 9545

目的: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...