首页 > 代码库 > 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(){    }