(1)non-copyable class
class CJack {
private:
CJack(const CJack& rhs);
CJack& operator=(const CJack& rhs);
public:
CJack();
~CJack();
};
(2)singleton class
class CJean {
static CJean* ms_instance;
public:
static CJean* Instance();
static void Release();
private:
CJean();
~CJean();
};
CJean* CJean::ms_instance = 0;
CJean::CJean()
{
}
CJean::~CJean()
{
}
CJean* CJean::Instance()
{
if(ms_instance == 0){
ms_instance = new CJean();
}
return ms_instance;
}
void CJean::Release()
{
if(ms_instance){
delete ms_instance;
}
ms_instance = 0;
}