C 裡單例模式的實現

2021-07-04 13:48:22 字數 835 閱讀 9196

單例模式是十分常見的一種設計模式。乙個確定的單例模式在程式中只會有乙個例項,所以在一些系統中,希望某個類的例項只有乙個,那麼就可以將這個類定義為乙個單例類。

之前用cocos2d-x寫了個小遊戲,因為遊戲中的資料在各個layer中都是相同的,所以只需要乙個例項就夠了,所以就將遊戲資料類定義為乙個單例類。

下面是關於單例類的一段簡單**:

class singleton

public:

static singleton* getinstance();

void run();

static singleton* minstance;

};singleton* singleton::minstance = null;

singleton* singleton::getinstance()

return minstance;

}void singleton::run()

執行結果如下:

在單例類中,定義乙個靜態的指向本類的指標minstance,在類外對其進行初始化。由於將類的建構函式宣告成了private,那麼就意味著只能通過成員函式來呼叫單例類的建構函式,而不能在類外呼叫。所以要獲取單例類的例項,只能通過類中的getinstance()方法來得到,第一次呼叫時執行new singleton(),而之後再呼叫時,minstance已經不為空,可以直接返回minstance。而當需要呼叫單例類中的成員函式時,需要先得到單例類的minstance指標,再呼叫成員函式。

C 實現單例模式

給所需要進行單例的類ctest的建構函式宣告為private或者protected 防止在類外隨意生成ctest的物件 然後宣告乙個靜態成員變數 instance 乙個靜態成員函式getinsance staticctest getinstance staticctest instance 靜態成員...

C 實現單例模式

ifndef singleton h define singleton h include include using namespace std class locker inline locker inline void lock inline void unlock private pthre...

C 實現單例模式

class singleton 私有建構函式 singleton const singleton 拷貝建構函式,只宣告不定義,這要當使用者或友元想要拷貝構造該類的已存在例項時會出錯。singleton operator const singleton 賦值運算子,只宣告不定義,作用同上 public...