21 手寫實現智慧型指標類

2021-10-01 03:24:49 字數 613 閱讀 1443

template

<

class

t>

class

smartpointer

//指標拷貝建構函式,新建乙個指向已有物件的智慧型指標

//需要先設定ptr和ref_count

//設為指向sptr的ptr和ref_count

//並且,因為新建了乙個ptr的引用,所以引用計數加一

smartpointer

(smartpointer

&sptr)

//rewrite "="

smartpointer

&operator

=(smartpointer

&sptr)

~smartpointer()

t getvalue()

t getcount()

protected

://刪除指標

void

remove()

}private

:unsigned

* ref_count;

//應用計數值

t * ref;

//普通指標

};

智慧型指標實現

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...

自己動手寫資料結構 智慧型指標類

智慧型指標類 class smartpt smartpt friend class hasptr int pt size t use class hasptr hasptr const hasptr h ptr h.ptr val h.val hasptr hasptr operator const...