关于单件模式的问题
//以下是测试类,我想在使用完成后删除单件实列.
???可系统提示我 内存泄露.是关于三个参数的.
多次使用,也仅提示一次泄露.
class CTest
{
public:
static CTest* GetInstance();
BOOL Play();
BOOL Stop();
private:
CTest();
virtual ~CTest();
public:
CString m_param1;
DWORD m_param2;
UINT_PTR m_param3;
};
static CTest* g_test =NULL;
CTest* CTest:: GetInstance()
{
if(g_test == NULL)
{
g_test = new CTest;
}
return g_test ;
}
BOOL CTest:: Play(){ do something }
BOOL CTest:: Stop()
{
...
delete g_test ;
g_test = NULL;
}
[解决办法]
是不是Stop()之后又调用了GetInstance() ,或者g_test别的地方又被赋值了。