1. 程式人生 > 其它 >c++單例模式

c++單例模式

什麼是單例模式:

建構函式是私有的,只有內部接口才能訪問建構函式的類可以實現單例模式,

提供一個public介面來獲取這個指標,這樣可以實現單例模式

class CSingleton
{
private:
    CSingleton()
    {
    }
    static CSingleton *p;
public:
    static CSingleton* getInstance()
    {
        if(p == NULL)
            p = new CSingleton();
        return p;
    }
};
CSingleton* CSingleton::p = NULL;
class CSingleton
{
private:
    CSingleton()
    {
    }
    static CSingleton *p;
public:
    static CSingleton* getInstance()
    {
        return p;
    }
};
CSingleton* CSingleton::p = new CSingleton();
懶漢餓漢模式看看就行,很簡單很容易理解

一句話總結:

利用靜態變數和私有化建構函式的特性來實現單例模式。搞一個靜態的自身類指標,然後把建構函式私有化,這樣new的時候就只能讓本類中的成員呼叫,然後不擇手段在類內部new出這個物件,並提供一種方法供外部得到這個物件的地址。