C++ 自动资源释放的单例模式

代码思想就是程序结束时会自动释放静态/全局资源时删除单例资源。

//.h
class CSingleton
{
public:
    static CSingleton* Singleton() { return ms_oSingleton; };

private:
    CSingleton();
    ~CSingleton();
    static CSingleton* ms_oSingleton;
    struct GC {
        ~GC()
        {
            if (ms_oSingleton != NULL)
                delete ms_oSingleton;
            ms_oSingleton = NULL;
        }
    };
    static GC ms_oGC;
};
//.cpp
CSingleton* CSingleton::ms_oSingleton = new CSingleton();
CSingleton::GC CSingleton::ms_oGC;
CSingleton::CSingleton()
{
}
CSingleton::~CSingleton()
{
    //delete rc
}

 

转载于:https://www.cnblogs.com/wjshan0808/p/7200126.html

你可能感兴趣的:(C++ 自动资源释放的单例模式)