【C++知识点】单例模式的简单实现
2016-07-16 09:51
573 查看
单例模式是最常见,也是使用最广泛的一种设计模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。
单例模式的实现方法有很多种,本文只给出一个最简单的实现,如下:
(1) 使用一个类的私有静态指针指向该类的唯一一个实例
(2) 使用一个共有的静态方法获取该实例。
调用和测试
单例模式的实现方法有很多种,本文只给出一个最简单的实现,如下:
(1) 使用一个类的私有静态指针指向该类的唯一一个实例
(2) 使用一个共有的静态方法获取该实例。
#include "stdafx.h" #include <iostream> using namespace std; class Singleton { public: ~Singleton() { if (singleton!=NULL) { delete singleton; } } static Singleton* getSingleton();//全局访问点 private: Singleton(){ } static Singleton* singleton;//指向该类唯一实例的一个静态指针 }; //静态成员必须在类外初始化 Singleton * Singleton::singleton = NULL; Singleton* Singleton::getSingleton(){ if (singleton == NULL)//如果该唯一实例不存在,就创建一个 { singleton = new Singleton(); } else cout<<"已存在一个实例"<<endl; return singleton; }
调用和测试
int _tmain(int argc, _TCHAR* argv[]) { Singleton* mySingleton = Singleton::getSingleton();//获得了该类的唯一一个实例 Singleton* mySingleton2 = Singleton::getSingleton();//输出“已存在一个实例”,此时mySingleton和mySingleton2同指向该类的唯一实例 return 0; }
相关文章推荐
- C语言:数值型数据的储存
- c语言中的abs
- Socket编程--c语言
- C语言自增(++)和自减(--)实例详解
- C++ 静态成员初始化
- 【c++】指针和引用实现多态
- C++体会
- C 语言简单加减乘除运算
- 华为OJC++编程题001.计算字符串最后一个单词的长度
- C语言实现简单的面向对象例子
- C++缺省参数
- C语言画状态条
- express
- [转] Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
- Thinking in C++: 第1章 为什么C++会成功
- Count and Say
- c++异常处理。
- Effective C++: BitField
- Thinking in C++: 第1章 多态性
- 洛谷 P1311 [NOIP2011 D1T1] 选择客栈