加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

单一模式析构问题

发布时间:2020-05-23 14:34:32 所属栏目:程序设计 来源:互联网
导读:class Singleton{ public: ~Singleton(); static Singleton* getInstance(); static void destroy(); private: static Singleton* pInstance; Singleton(); }; Singleton* 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;
}

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

(编辑:安卓应用网)

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

    推荐文章
      热点阅读