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