美文网首页
c++ 单例模式 private 成员初始化

c++ 单例模式 private 成员初始化

作者: 东京的雨不会淋湿首尔 | 来源:发表于2020-04-30 22:04 被阅读0次
    #include <iostream>
    using namespace std;
     
    class Singleton
    {
    private:
     
        static Singleton* st;
        //static Singleton* st = NULL; //错误
     
        Singleton(){}
    public:
     
        static Singleton* getInstance()
        {
            if (st == NULL)
            {
                st = new Singleton();
            }
     
            return st;
        }
     
        void show()
        {
            cout << st << endl;
        }
     
    };
     
    Singleton* Singleton::st = NULL; //正确,只能在类外初始化,如若不在此初始化会报连接错误
     
    int main()
    {
        //Singleton* Singleton::st = NULL; //错误
     
        Singleton* st = Singleton::getInstance();
        Singleton* st1 = Singleton::getInstance();
     
        if (st == st1)
        {
            cout << "两个对象是相同的实例。" << endl;
        }
     
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:c++ 单例模式 private 成员初始化

          本文链接:https://www.haomeiwen.com/subject/rzcxghtx.html