測試環境: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返回的位址賦給 這些物件,將無需...