#include
#include
class CA
{
public:
inline static CA *GetInstance(void)
{ www.liuhebao.com
assert(m_instance != NULL);
return m_instance;
}
void Print(void)
{
puts("主類的Print函數運行看看");
}
class Garbage//用來分配內存的嵌套類
{ www.yzyedu.com
public:
Garbage(int i, int j)
{
printf("Garbage分配內存開始:%d %d\n", i, j);
m_instance = new CA(123123, 234234234);
}
~Garbage()
{
delete m_instance;
puts("Garbage收拾殘局結束");
}
};
static Garbage m_garbage;
protected: www.yzjxsp.com
friend class Garbage;
CA(int i, int j){printf("主類構造函數運行: %d %d\n", i, j);}
~CA(){printf("主類析構函數運行,結束了哦\n");}
static CA *m_instance;
};
CA *CA::m_instance = NULL;
CA::Garbage CA::m_garbage(2, 3);
int main()
{
CA *cmb = CA::GetInstance();
cmb->Print();
return 0;
}