实现单例模式
单例模式的目的是使得类的一个对象成为系统中的唯一实例。通过单例模式的方法创建的类在当前进程中只有一个实例 (根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例)
1、饿汉模式
/*
* 饿汉模式
* 1. 线程安全的因为代码在跑起来的时候,类就已经被实例化出来了
* 2. 但是不支持延迟加载,即不能在使用时才创建它
*/
class Singleton {
public:
static Singleton *getInstance();
private:
Singleton() {
cout << "new Singleton" << endl;
}
Singleton(const Singleton &) = delete;
Singleton& operator=(const Singleton &) = delete;
static Singleton *instance;
};
Singleton *Singleton::instance = new Singleton();
Singleton *Singleton