C++单例模式使用

来源:互联网 发布:人工智能机器2氏族战争 编辑:程序博客网 时间:2024/06/06 04:38

1)头文件中

#pragma once#include "kefustatusmanage.pb.h"#include"KefuStatusDao.h"#include <mutex>class KefuStatusManager{public:~KefuStatusManager();static KefuStatusManager* GetManager();private:KefuStatusManager();public:int SetKefuStatus(const KefuStatusManage::SetKefuStatusReq &  objReq);int GetAllKefuStatus(KefuStatusManage::GetAllKefuStatusResp &  objResp);private:std::mutex m_mutex_GetStatusCache;std::map<unsigned int, ::KefuStatusManage::kefuStatus >GetStatusID2Info;};

2)在源文件中

KefuStatusManager * KefuStatusManager::GetManager(){static std::unique_ptr<KefuStatusManager> instance;static once_flag once;call_once(once, [&]() {instance.reset(new KefuStatusManager);});return instance.get();}

3)使用时

KefuStatusManager::GetManager()->SetKefuStatus(objReq);



0 0
原创粉丝点击