C 智慧型指標的使用

2021-06-19 23:07:37 字數 1120 閱讀 4933

測試環境:win7, vs2012

如果未安裝boost,請參考:

涉及智慧型指標:shared_ptr, weak_ptr, scoped_ptr, auto_ptr

其它:enable_shared_from_this

總呼叫函式:

testsmartpointer()

可以將其放在main()中執行。解釋在**中。

#include #include #include #include #include #include #include class base

virtual ~base()

int geta() const

private:

int m_a;

};class derive : public base

virtual ~derive()

int getb() const

private:

int m_b;

};class enableshared

~enableshared()

void showe()

private:

int m_e;

};class enablesharedex : public boost::enable_shared_from_this

~enablesharedex()

void showe()

private:

int m_e;

};static void testsharedptr();

static void testenablesharedfromthis();

static void testscopedptr();

static void testautoptr();

void testsmartpointer()

void testsharedptr()

void testenablesharedfromthis()

void testscopedptr()

void testautoptr()

不懂它的時候,你覺的它是洪水猛獸。了解它的時候,會覺得它是那麼的親切。

C 智慧型指標使用

由於 c 語言沒有自動記憶體 機制,程式設計師每次 new 出來的記憶體都要手動 delete。程式設計師忘記 delete,流程太複雜,最終導致沒有 delete,異常導致程式過早退出,沒有執行 delete 的情況並不罕見。std auto ptr boost scoped ptr boost ...

C 智慧型指標的使用

c 11中提供了三種智慧型指標 unique ptr shared ptr weak ptr 來自動 堆分配的物件。unique ptr如它的名字所傳達的意思,其所指向的記憶體區不能與unique ptr定義的另乙個指標共享。看 比較容易理解。include include using namesp...

c 基礎 使用智慧型指標

三個智慧型指標模板 auto ptr unique ptr和shard ptr 都定義了類似指標的物件 c 11已將auto ptr摒棄 可以將new獲得 直接或間接 的位址賦給這種物件。當智慧型指標過期時,其析構函式將使用delete來釋放記憶體。因此,如果將new返回的位址賦給 這些物件,將無需...