当前位置:   article > 正文

c++设计模式-单例模式_c++ 单例模式

c++ 单例模式

单例模式

        单例模式是一种常用的软件设计模式。 在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

class A;

A a; 这个系统中只能有一个A类对象

控制这个A类型的对象个数,单例模型。系统只有一个对象。

  1. #include <iostream>
  2. using namespace std;
  3. //单例模型
  4. class A {
  5. //为了不让用户可以自己创建对象 必须把构造函数私有化
  6. private:
  7. A() {
  8. a = new A;
  9. }
  10. //这里唯一一个public的接口设置为静态
  11. //用户便不需要创建对象直接类名进行访问
  12. public:
  13. static A* getInstance() {
  14. return a;
  15. }
  16. //成员变量也需要私有化 不然用户可以A::a
  17. //而且需要设置为静态 匹配上面接口的返回值
  18. private:
  19. static A* a;
  20. };
  21. //类外初始化
  22. A* A::a = NULL;
  23. //实现单例的步骤
  24. //1.构造函数私有化
  25. //2.增加静态私有的当前类的指针变量
  26. //3.提供静态的对外接口 可以让用户获得单例对象
  27. int main() {
  28. A::getInstance();
  29. return 0;
  30. }

 单例模型分为懒汉式和饿汉式两种:

  1. #include <iostream>
  2. using namespace std;
  3. //单例
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/729586
推荐阅读
相关标签
  

闽ICP备14008679号