创建单例模式步骤
- 私有构造函数
- 私有析构函数
- 私有拷贝函数
- 定义静态私有对象指针 (类内定义,类外初始化)
- 对外提供访问的方法
一般单例对象不需要考虑释放问题
如果需要释放,提供显示调用destory
简单单例模式
class Demo
{
public:
static Demo * getInstance()
{
return pDemo;
}
void destory()
{
if(pDemo != nullptr)
{
delete pDemo;
pDemo = nullptr;
}
}
private:
Demo(){}
~Demo(){}
static Demo *pDemo;
Demo(const Demo &d) = delete; //C11语法
}
Demo *Demo::pDemo = new Demo;
void test()
{
Demo *d = Demo::getInstance();
//释放
d->destory();
}