C++单例模式
2015-09-07 16:24
225 查看
#include <iostream> using namespace std; class CSingleton { private: CSingleton() //构造函数是私有的 { cout<<"调用构造器\n"; } static CSingleton *m_pInstance;//声明 public: static CSingleton *GetInstance() { if(m_pInstance == nullptr) //判断是否第一次调用 { m_pInstance = new CSingleton();//调用构造器 cout<<"第一次调用\n"; } else cout<<"没有创建新的实例\n"; return m_pInstance; } }; CSingleton *CSingleton::m_pInstance = nullptr;//类中声明的静态数据,需要在类外面再定义一次 int main() { CSingleton* p1 = CSingleton::GetInstance(); CSingleton* p2 = p1->GetInstance(); delete p1; delete p2; return 0; }
程序的输出为:
调用构造器
第一次调用
没有创建新的实例
相关文章推荐
- C/C++ 程序进程在内存中的分布
- C++中基本的输入输出函数使用指南
- 详解C++中赋值和输入输出语句的用法
- c++字符串输出。
- c++模板和java泛型之间有何不同
- 字符串匹配的KMP算法
- C++递归实现格雷码
- C#与C/C++的交互
- c语言中printf("N多字怎么打的快");(vim编辑器)
- 浅谈C++的语句语法与强制数据类型转换
- C++中赋值运算符与逗号运算符的用法详解
- 内联函数与宏的简单说明
- C++类成员声明时候不能初始化
- C++中cin、cin.get()、cin.getline()、getline()
- 【转】c++中vector的用法
- c++ 中 `++i` 与 `i++` 在运算表达式中的优先级
- C++实现Windows下的Daemon,监控多个进程
- 【C++学习笔记】sizeof()的用法与字节对齐
- 关于C++ const 的全面总结
- iOS开发之c语言入门教程