bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

c++設(shè)計模式之單例模式下的實例自動銷毀(垃圾自動回收器)

    

創(chuàng)新互聯(lián)是一家成都做網(wǎng)站、網(wǎng)站制作,提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需設(shè)計,網(wǎng)站開發(fā)公司,從2013年開始是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。

關(guān)于C++單例模式下m_pinstance指向空間銷毀問題,m_pInstance的手動銷毀經(jīng)常是一個頭痛的問題,內(nèi)存和資源泄露也是屢見不鮮,能否有一個方法,讓實例自動釋放。

解決方法就是定義一個內(nèi)部垃圾回收類,并且在Singleton中定義一個此類的靜態(tài)成員。程序結(jié)束時,系統(tǒng)會自動析構(gòu)此靜態(tài)成員,此時,在此類的析構(gòu)函數(shù)中析構(gòu)Singleton實例,就可以實現(xiàn)m_pInstance的自動釋放。

附上測試代碼

c++設(shè)計模式之單例模式下的實例自動銷毀(垃圾自動回收器)

 1 #include <iostream> 2 using namespace std; 3  4 class Singleton 5 { 6 public: 7     static Singleton *GetInstance() 8     { 9         if (m_Instance == NULL)10         {11             m_Instance = new Singleton();12             cout<<"get Singleton instance success"<<endl;13         }14         return m_Instance;15     }16 17 private:18     Singleton(){cout<<"Singleton construction"<<endl;}19     static Singleton *m_Instance;20 21     // This is important22     class GC // 垃圾回收類23     {24     public:25         GC()26         {27             cout<<"GC construction"<<endl;28         }29         ~GC()30         {31             cout<<"GC destruction"<<endl;32             // We can destory all the resouce here, eg:db connector, file handle and so on33             if (m_Instance != NULL)34             {35                 delete m_Instance;36                 m_Instance = NULL;37                 cout<<"Singleton destruction"<<endl;38                 system("pause");//不暫停程序會自動退出,看不清輸出信息39             }40         }41     };42     static GC gc;  //垃圾回收類的靜態(tài)成員43 44 };45 46 Singleton *Singleton::m_Instance = NULL;47 Singleton::GC Singleton::gc; //類的靜態(tài)成員需要類外部初始化,這一點很重要,否則程序運行連GC的構(gòu)造都不會進入,何談自動析構(gòu)48 int main(int argc, char *argv[])49 {50     Singleton *singletonObj = Singleton::GetInstance();51     return 0;52 }

c++設(shè)計模式之單例模式下的實例自動銷毀(垃圾自動回收器)


運行結(jié)果:

c++設(shè)計模式之單例模式下的實例自動銷毀(垃圾自動回收器)

 

新聞標題:c++設(shè)計模式之單例模式下的實例自動銷毀(垃圾自動回收器)
本文鏈接:http://vcdvsql.cn/article42/pejhhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器網(wǎng)站導(dǎo)航網(wǎng)站建設(shè)網(wǎng)站設(shè)計建站公司軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名