单例模式就是。。只能有一个实例化。

像一个游戏中。你这个NPC只有一个。不能多次创建 大概酱紫

怎么弄呐

class A{
public:
static A*getInstance();//这个获取实例
private:
A();
static A*m_Instace;
}
A* A::m_Instance=new A;//初始化
A*A::getInstance()
{
if(m_Instance)//实例还未创建则创建
m_Instance=new A;

return m_Instance;//返回实例
}

这样。简单的单例模式就出现了。。但是。析构函数不见了。。记不到哪里看的方法了。。A内部弄个B类来执行析构的事情

完整马。

#include <iostream>
using namespace std;
class A
{
public:
static A*getInstance();
void show(){ std::cout << 1; }//测试是否成功
private:
class B{

~B(){
if (A::m_Instance)//在B里面。。判断m_Instance是否实例化了。。若是则delete掉
{
delete A::m_Instance;
}
}
};
A(){ };
static A* m_Instance;
static B clr;//静态创建的话,程序执行完毕的时候会析构 就顺便析构了A了。

};
A*A::m_Instance = new A;
A*A::getInstance() {
if (!m_Instance)
{
m_Instance = new A;
}
return m_Instance;
};


#include "h.hpp"
int main()
{
A *a=A::getInstance(); A*b=A::getInstance();
if(a==b)a->show();

}

会输出1

嗯 就是酱紫