![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
#include <stdio.h>
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
#include <assert.h>
class CA
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
public:
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
inline
static CA *GetInstance(
void)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
assert(m_instance != NULL);
return m_instance;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
void Print(
void)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
puts(
"主类的Print函数运行看看");
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
class Garbage
//用来分配内存的嵌套类
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
public:
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
Garbage(
int i,
int j)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
printf(
"Garbage分配内存开始:%d %d\n", i, j);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
m_instance =
new CA(123123, 234234234);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
~Garbage()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
delete m_instance;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
puts(
"Garbage收拾残局结束");
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
};
static Garbage m_garbage;
protected:
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
friend
class Garbage;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CA(
int i,
int j){printf(
"主类构造函数运行: %d %d\n", i, j);}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
~CA(){printf(
"主类析构函数运行,结束了哦\n");}
static CA *m_instance;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
};
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CA *CA::m_instance = NULL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CA::Garbage CA::m_garbage(2, 3);
int main()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CA *cmb = CA::GetInstance();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
cmb->Print();
return 0;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
转载于:https://blog.51cto.com/1501001/509150