單例模式:Singleton
單例模式確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例單例模式。單例模式只應在有真正的“單一實例”的需求時才可使用。
我實現了一個簡單的單例類,歡迎吐槽。
#include<iostream>
using namespace std;
class Singleton
{
public:
static Singleton * GetInstance()//通過靜態公有函數獲得該類的實例對象
{
if(m_pInstance==NULL)
m_pInstance=new Singleton();
return m_pInstance;
}
private:
Singleton(){}//構造函數私有化的目的是為了防止從別處實例化該類對象
static Singleton * m_pInstance;
class Garbo//刪除Singleton實例的對象
{
public:
~Garbo()
{
if(Singleton::m_pInstance)
{
delete Singleton::m_pInstance;
}
} www.2cto.com
};
static Garbo gb;//在程序結束時,系統會調用它的析構函數
};
Singleton * Singleton::m_pInstance=NULL;//初始化靜態數據成員
int main()
{
Singleton *sl=Singleton::GetInstance();
return 0;
}
摘自 C小加