请你手写一下单例模式代码
/*饿汉式*/
class Singleton
{
private:
Singleton() {}
static Singleton *instance;
public:
static Singleton *getInstance()
{
return instance;
}
}
Singleton *Singleton::instance = new Singleton();
/*懒汉式*/
class Singleton
{
private:
Singleton() {}
static Singleton *instance;
public:
static Singleton *getInstance()
{
/*双检查锁*/
if (instance == nullptr) {
lock();//借助一些函数实现
if (instance == nullptr) {
instance = new Singleton();
}
}
return instance;
}
}
Singleton *Singleton::instance = nullptr;