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;
}
}