#pragma once
//单实例类
class CB
{
public:
//static CB& GetCB()
//{
// static CB cb(1,2);
// return cb;//静态全局区
//}
//static CB& GetCB()
//{
// //堆区:
// static CB *pcb = new CB(1,2);
// return *pcb;//堆区
//}
//static CB* GetCB()
//{
// static CB cb(1,2);
// return &cb;//静态全局区
//}
static CB* GetCB()
{
m_count++;
if (nullptr == m_pcb)
m_pcb = new CB(1, 2);
return m_pcb;//堆区
}
static void Del()
{
m_count--;
if (0 == m_count)
{
delete m_pcb;
m_pcb = nullptr;
}
}
private:
~CB();
CB(int,int);
static CB *m_pcb;
static int m_count;
};
#include "B.h"
CB* CB::m_pcb = nullptr;
int CB::m_count = 0;
CB::CB(int,int)
{
}
CB::~CB()
{
}
#pragma once
/*
创建多个对象,保证每一个对象都是在堆区
*/
class CC
{
public:
static CC* CreateCC()
{
return new CC;
}
~CC();
private:
CC();
};
#include "C.h"
CC::CC()
{
}
CC::~CC()
{
}