Singleton模式

来源:互联网 发布:临沂软件培训 编辑:程序博客网 时间:2024/06/16 09:51

看似简单,其实要写对代码,有几个值得注意的地方


class Singleton { //注意static, protected, private关键字
public:
    static Singleton* Instance();
protected:
    Singleton() { cout << "Singleton constructed. " << endl; }
private:
    static Singleton *_instance;
};

Singleton* Singleton::Instance () {
    if (_instance == 0)
        _instance = new Singleton();
    return _instance;
}

Singleton* Singleton::_instance = 0;   //static成员变量必须在类的定义体外部定义正好一次,如果没有这句,编译会出错。

int main()
{
    Singleton *a = Singleton::Instance();
    Singleton *b = Singleton::Instance();
    return 0;

}


原创粉丝点击