[设计模式]C++实现单例

  • 单例指对象只能被创建一次,不可重复创建

  • 利用C++ static 关键字实现静态局部变量,即使重复声明返回的也是第一次创建的对象

代码:

int x = 20;
​
class Singleton
{
private:
    Singleton() { val = x++; cout << "Obeject Create!
"; } //私有构造函数,只能通过Get方法调用
    ~Singleton() { cout << "Object Delete!
"; }
public:
    int val;
    static Singleton *GetInstance()
    {
        static Singleton ret; //static类型变量,仅在首次声明时创建赋值
        return &ret;
    }
};
​
int main()
{
    Singleton *s = Singleton::GetInstance();
    cout << s->val << '
';  //验证
    Singleton *s2 = Singleton::GetInstance();
    cout << s->val << '
';
    return 0;
}

运行结果:

原文地址:https://www.cnblogs.com/zeolim/p/12270309.html