1.声明与定义
class CSingleton
{
public:
static class CSingleton* Instance();
static void Release();
protected:
CSingleton(){};
private:
static CSingleton* m_pComThread;
};
CSingleton* CSingleton::m_pComThread = NULL;
class CSingleton* CSingleton::Instance()
{
if( NULL == m_pComThread )
m_pComThread = new CSingleton;
return m_pComThread;
}
void CSingleton::Release()
{
if( NULL != m_pComThread )
delete m_pComThread;
}
2.使用规则:
在程序结束时要调用Rlease()函数来释放单子对象,从而使单子对象来调用析构函数来释放自己内部申请的内存空间;
3.存在问题:
多线程时,在不同的线程中调用实例是否会存在冲突?
阅读(861) | 评论(0) | 转发(0) |