實現一個只能例項化一次的類 即 單例模式(Singleton)
阿新 • • 發佈:2019-01-05
單例模式的要點有三個:
- 某個類只能有一個例項;
- 它必須自行建立這個例項;
- 它必須自行向整個系統提供這個例項。
從具體實現角度來說,就是以下三點:
- 單例模式的類只提供私有的建構函式
- 類定義中含有一個該類的靜態私有物件
- 該類提供了一個靜態的公有的函式用於建立或獲取它本身的靜態私有物件。
class CSingleton
{
public:
static CSingleton * GetInstance()
{
if(NULL == m_pInstance)
m_pInstance = new CSingleton();
return m_pInstance;
}
static void Release() //必須,否則會導致記憶體洩露
{
if(NULL != m_pInstance)
{
delete m_pInstance;
m_pInstance = NULL;
}
}
private:
CSingleton()
{
cout<<"CSingleton" <<endl;
};
static CSingleton * m_pInstance;
};
CSingleton* CSingleton::m_pInstance = NULL;