利用atexit實現單例模式自動析構 -开发者知识库
#include <stdio.h>
#include <stdlib.h>
class CSingleton
{
public:
static CSingleton* GetInstance()
{
if ( m_pInstance == NULL ) { //判斷是否第一次調用
m_pInstance = new CSingleton();
atexit(CSingleton::Release_CSingleton);
}
return m_pInstance;
}
static void Release_CSingleton()
{
if (m_pInstance != NULL) {
delete m_pInstance;
m_pInstance = NULL;
}
}
private:
CSingleton(){};
static CSingleton *m_pInstance;
};
CSingleton* CSingleton::m_pInstance = NULL;
int main()
{
CSingleton* p = CSingleton::GetInstance();
return 0;
}
最佳答案:
本文经用户投稿或网站收集转载,如有侵权请联系本站。
0条回复