在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;
}
注:这是返回指针的情况,返回普通对象的方法差不多,不再赘述。