class CA
{
private:
CA();
~CA();
public:
static CA* InitObject(); //静态成员在没有创建对象的情况下就可以访问
void Release();
private:
static int m_sCount;
};
int CA::m_sCount = 0; //静态成员必须在类外定义
CA::CA()
{
}
CA::~CA()
{
}
CA* CA::InitObject()
{
static CA *pObj = NULL; //全局,作用在函数体内
if(0 == m_sCount)
{
pObj = new CA;
}
m_sCount++;
return pObj;
}
void CA::Release()
{
m_sCount--;
if(0 == m_sCount)
{
delete this;
}
}