博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例模式的C++实现
阅读量:7036 次
发布时间:2019-06-28

本文共 1051 字,大约阅读时间需要 3 分钟。

#include 
using namespace std;/* 单例模式:懒汉式1、保证该类只有一个实例。2、考虑多线程安全3、考虑资源释放*/class Lock{ public: Lock(){ //加锁代码 } ~Lock(){ //开锁代码 }};class Singleton{ class Garbo{ //辅助类,垃圾回收器 public: ~Garbo(){ if(Singleton::pInstance != NULL){ delete Singleton::pInstance; Singleton::pInstance = NULL; } } };private: static Singleton * pInstance; static Garbo garbo; //当程序结束时自动delete pInstance; Singleton(){}; //禁止自定义对象 Singleton(const Singleton & rhs); //禁止拷贝构造对象 const Singleton & operator=(const Singleton & rhs); ~Singleton(){ cout << "I'm deleted!"<
display(); } /*注:关于为何不适用静态成员来实习初始化一次,原因如下: 1.如果将pInstance定义为静态类成员,即static Singleton Instance,然后在getInstance中返回,这样必须在外部初始化,不属于懒汉式; 2、如果将pInstance定义为getInstance函数中的局部静态变量,这样只要getInstance不被调用,pInstance就不会有值,但在多线程环境下局部静态变量(特别是对象)能够保证初始化一次仍然不确定 */

参考文献

  • C++版:
  • Java版:

转载于:https://www.cnblogs.com/gaoyanqing/p/4745133.html

你可能感兴趣的文章
hibernate4之一对一关系映射(二)
查看>>
我的友情链接
查看>>
Android第五课 编译错误分析
查看>>
VS_远程调试
查看>>
博为峰Java技术题 ——JavaSE Java实现在不同编码之间进行文件转换
查看>>
Throws与Throw
查看>>
php趣味编程 - php求黑色星期五
查看>>
zabbix安装
查看>>
ELK之权限管理
查看>>
×_7_12_2013 I: Light on or off
查看>>
JIT
查看>>
巧用escalations限制Nagios报警次数 - [Nagios
查看>>
Entity SQL与LINQ TO Entity的本质区别
查看>>
python unittest 深入failfast及实际应用【示例】
查看>>
MSSQL中文排序规则设置
查看>>
30 个有关 Python 的小技巧
查看>>
CDN下nginx获取用户真实IP地址
查看>>
Jsp技术总结
查看>>
Sakai 11.x Build Failure
查看>>
面向对象+模块化设计绘制canvas星空动画
查看>>