千家信息网

c++设计模式之单例模式下的实例自动销毁(垃圾自动回收器)

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,关于C++单例模式下m_pinstance指向空间销毁问题,m_pInstance的手动销毁经常是一个头痛的问题,内存和资源泄露也是屡见不鲜,能否有一个方法,让实例自动释放。解决方法就是定义一个内部垃
千家信息网最后更新 2024年11月23日c++设计模式之单例模式下的实例自动销毁(垃圾自动回收器)

关于C++单例模式下m_pinstance指向空间销毁问题,m_pInstance的手动销毁经常是一个头痛的问题,内存和资源泄露也是屡见不鲜,能否有一个方法,让实例自动释放。

解决方法就是定义一个内部垃圾回收类,并且在Singleton中定义一个此类的静态成员。程序结束时,系统会自动析构此静态成员,此时,在此类的析构函数中析构Singleton实例,就可以实现m_pInstance的自动释放。

附上测试代码

 1 #include  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"<


运行结果:


0