智慧型指標3

2021-05-23 23:01:48 字數 623 閱讀 9219

#include

#include

using namespace std;

#define test_smartptr

class stub

;class sentry

~sentry(){}

private:

int lock_;

};template

class refcountingtraits

void unrefer(t* p)

private:

int lock_;

};template >

class smartptr :private rctraits

smartptr(const smartptr& src): ptr(src.ptr)

smartptr& operator= (const smartptr& rhs)

t *operator->()

const t *operator->() const

t &operator*()

const t &operator*() const

~smartptr() catch (const exception& err)

指標(3)智慧型指標總覽

scoped ptr不能被複製,shared ptr能複製 使用boost scoped ptr的時候必須注意,它不允許進行複製操作,一旦宣告了乙個指向某記憶體空間的指標,那麼就不可以通過another p p 的方式來分配記憶體空間的新所有權。auto ptr不能指定刪除器 因而不能管理記憶體之外...

3 智慧型指標std auto ptr

std auto ptr 對於編譯器來說,智慧型指標實質是乙個棧物件,而並非指標型別。智慧型指標通過建構函式獲取堆記憶體的管理所有權,而在其生命期結束時,再通過析構函式釋放由它所管理的堆記憶體。所有智慧型指標都過載了 operator 操作符,直接返回物件的引用,用以操作物件。訪問智慧型指標原來的方...

智慧型指標 強弱智慧型指標

在平時編寫 的時候經常會用到new來開闢空間,而我們開闢出來的空間必須得手動去delete他,但是如果程式設計師忘記去手動釋放那邊會出現乙個麻煩的問題,記憶體洩漏!或者是一塊記憶體被多個函式同時使用時,如果其中乙個函式不知道還有其他人也在使用這塊記憶體而釋放掉的話同樣也會引起程式的崩潰。引起記憶體洩...