首页 > 代码库 > C++ Single
C++ Single
#include <mutex>#include <iostream>using namespace std;class Single{public: static Single* ShareInstance(); static void ReleaseInstance();private: Single(); ~Single(); Single(const Single &other); Single& operator=(const Single &other); private: static Single *m_pObj; static mutex *m_pMutex;};#include "Single.h"Single* Single::m_pObj = NULL;mutex* Single::m_pMutex = new mutex();Single* Single::ShareInstance(){ if (NULL == m_pObj) { m_pMutex->lock(); m_pObj = new Single(); m_pMutex->unlock(); } return m_pObj;}void Single::ReleaseInstance(){ if (m_pObj) { delete m_pObj; m_pObj = NULL; }}Single::Single(){ }Single::~Single(){ }
EX:
#include <iostream>class SingleEx{public: static SingleEx& ShareInstance();private: SingleEx(); ~SingleEx(); SingleEx(const SingleEx &other); SingleEx& operator =(const SingleEx &other); };#include "SingleEx.h"SingleEx& SingleEx::ShareInstance(){ static SingleEx obj; return obj;}SingleEx::SingleEx(){ }SingleEx::~SingleEx(){ }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。