单例模式的一种C++写法

在MsgHandler.h中,

class MsgHandler
{
   
public:
    static MsgHandler *getInstance(); //函数要声明为static的,并且是public的,方便外部调用
private:
    MsgHandler(); //构造函数私有化,防止外部调用创建多个实例,这样可以确保只有一个实例
    MsgHandler(const MsgHandler&) = delete; // 禁止复制构造函数
    MsgHandler& operator=(const MsgHandler&) = delete; // 禁止赋值运算符

    static MsgHandler* instance; //知识点:实例要声明为static的,并且是private的,不让外部看见
}

在MsgHandler.cpp中

#include "MsgHandler.h"

MsgHandler* MsgHandler::instance = nullptr;

MsgHandler *MsgHandler::getInstance(void)
{
   
    if (instance == nullptr)
    {
   
        instance = new MsgHandler();
    }
    return instance;
}

注:这是返回指针的情况,返回普通对象的方法差不多,不再赘述。

相关推荐

  1. 模式C++写法

    2024-02-01 14:58:02       34 阅读
  2. 模式写法

    2024-02-01 14:58:02       38 阅读
  3. 模式具体写法

    2024-02-01 14:58:02       39 阅读
  4. 模式多种写法

    2024-02-01 14:58:02       11 阅读
  5. C++模式(三方式)

    2024-02-01 14:58:02       9 阅读
  6. 模式

    2024-02-01 14:58:02       27 阅读
  7. 模式C#】

    2024-02-01 14:58:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 14:58:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 14:58:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 14:58:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 14:58:02       18 阅读

热门阅读

  1. nodejs中有哪些读取和写文件的函数和例子

    2024-02-01 14:58:02       34 阅读
  2. 第五章 类的继承与派生之——类的继承与派生

    2024-02-01 14:58:02       26 阅读
  3. BeanUtil.copyProperties(source,target)拷贝List注意事项

    2024-02-01 14:58:02       37 阅读
  4. 深度学习的进展

    2024-02-01 14:58:02       29 阅读
  5. 代码随想录算法训练营|day22

    2024-02-01 14:58:02       33 阅读
  6. Android studio布局详解

    2024-02-01 14:58:02       34 阅读