单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。
1.初始实现
因此,首先要将构造函数设为私有类型,设置一个静态变量flag,来标记此时是否已经创建对象,并定义一个静态成员函数GetSingleObject() 来进行创建对象。
#include <iostream>
using namespace std;
class SingleObject
{
public:
int m_id;
private:
static bool flag;
private:
SingleObject()//将构造函数设为私有
{
}
public:
static SingleObject* GetSingleObject();//只有GetSingleObject函数设置成static静态成员变量,才能不需要对象,直接用类名来调用。
};
bool SingleObject::flag = false;//将标识flag初始化为false
SingleObject* SingleObject::GetSingleObject()
{
if (flag == false)/