C++:Singleton

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

Singleton 就是只能建立一個 Instance 的 class

#include
<iostream>
#include <cassert>
using namespace std;
class CSingleton
{
private:
 static CSingleton *m_Singleton;
public:
 CSingleton();
 virtual ~CSingleton();
 static CSingleton * GetClass(void);
};
CSingleton * CSingleton::m_Singleton;
CSingleton::CSingleton()
{
 assert(!m_Singleton);
 m_Singleton = this;
}
CSingleton::~CSingleton()
{
 assert(m_Singleton);
 m_Singleton = NULL;
}
CSingleton * CSingleton::GetClass()
{
 assert(m_Singleton);
 return m_Singleton;
}
int main(void)
{
 CSingleton singleClass;
 CSingleton *pSingleton;
 pSingleton = CSingleton::GetClass();
 CSingleton secondObject;
 return 0;
}

沒有留言: