C++设计模式:单例模式

Posted 码格蛋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++设计模式:单例模式相关的知识,希望对你有一定的参考价值。


1.单例单例:

保证一个类仅有一个实例,并且提供一个访问它的全局访问点


2.适用范围:

1.只希望用户通过一个全局访问点去访问

2.该类通过继承扩展时用户无需更改代码继续使用全局访问点也能实现扩展

3.常用于管理资源,如日志、线程池


3.代码演示(vs2013 Control):

#include <iostream>using namespace std;
//单例模式类class MyClass{public: ~MyClass(){}protected: MyClass(){}//保护构造函数
public: static MyClass* MyClass::getInstance();//获取实例 void print(){ cout << "This is MyClass!" << endl; }
private: static MyClass *_instrance; };MyClass* MyClass::_instrance = nullptr;MyClass* MyClass::getInstance()//获取实例{ if (_instrance == nullptr){ _instrance = new MyClass(); } return _instrance;}
//演示int main(int argc, char **argv){ //MyClass item; //错误,不能构造 //MyClass *item = new MyClass; //错误,不能构造 MyClass *item = MyClass::getInstance();//正确 item->print();
delete item; item = nullptr; return 0;}

运行结果


-----

以上是关于C++设计模式:单例模式的主要内容,如果未能解决你的问题,请参考以下文章

C++之单例(singleton)模式

C++特殊类设计(单例模式)

C++ 单例模式续

C++ 安全单例模式总结

C++ 单例模式(singleton)

C++ 单例模式(singleton)