总结:
1 全局只有一个实例化的类
2 单例模式的类,必须构造函数私有。即,不可以使用new进行该类的初始化。
3 单例模式的类,必须提供一个可以让外部访问的接口(且是static类型的),通常这样的接口,都是公有的。
增加静态私有,该类的指针
4 静态变量,类外初始化。
单例模式类型:
懒汉。 饿汉
其中懒汉模式:
表示:当使用的时候,才进行创建
class A {
public:
static A* getinstance(){
if (a == nullptr) {
a = new A;
}
return a;
}
private:
A(){};
static A* a;
}
A* A::a = nullptr;
饿汉式
表示:程序运行的时候,就创建,创建的比较急,所以叫饿汉
class H {
public:
static H* getinstance(){
return h;
}
private:
H(){};
static H* h;
}
H* H::h = new H;