加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

单一模式析构问题

发布时间:2020-12-13 20:00:40 所属栏目:百科 来源:网络整理
导读:class Singleton{ public: ~Singleton(); static Singleton* getInstance(); static void destroy(); private: static Singleton* pInstance; Singleton(); }; Singleton* Singleton::getInstance() { if(pInstance == 0) { pInstance = new Singleton(); }

class Singleton{


public:

~Singleton();


static Singleton* getInstance();
static void destroy();


private:
static Singleton* pInstance;
Singleton();


};

Singleton* Singleton::getInstance()
{
if(pInstance == 0)
{
pInstance = new Singleton();
}
return pInstance;
}

以上这种写法的单一模式,在程序退出的时候不会自动析构,必须手动delete 或者调用destory()函数。

class Singleton{


public:

~Singleton();


static Singleton* getInstance();


private:
Singleton();


};

Singleton* Singleton::getInstance()
{
static Singleton pInstance;
}
return &pInstance;
}

此种写发,在程序退出时候,会调用析构函数,但是线程安全吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读