C++ 單例模式

單例模式即某個類只能創建一次實例。爲了防止對象被多次創建,防止多實例造成一些混亂。

實現方式:

定義一個static變量,在new對象前先判斷一下static變量不爲NULL才new。

原理:被聲明爲static的成員變量是一個公共變量,只有一塊內存空間,每個實例都擁有這塊內存空間,其中一個實例改了它,那其他實例獲取到的就是改了以後的值。

注意:static類型的類對象必須要在類外面進行初始化,否則將報錯(爲這個錯誤頭疼了一晚上)

class A{
private:
    static B *p;
public:
    void helloworld(){
        if(p == NULL){
            p = new B();
        }
        return p;
    }
}

B* A::p = NULL;  //注意,static類型的類對象必須要在類外面進行初始化

class B{
........
........
}

以上這種單例模式是懶漢模式,還有餓漢模式,使用內部類,一般共三種模式。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章