首页 > 试题广场 >

请你手写一下单例模式代码

[问答题]
/*饿汉式*/
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;

发表于 2020-09-03 15:32:18 回复(0)