美文网首页
面试题2:C++ 单例模式最简单最安全实现

面试题2:C++ 单例模式最简单最安全实现

作者: 修司敦 | 来源:发表于2018-11-08 23:58 被阅读0次

    本代码采用饿汉模式,是线程安全的,而且静态对象在生命周期结束的时候也会自动析构。

    #include <cstdlib>
    #include <cstdio>
    #include <iostream>
    
    class Singleton {
    private:
        Singleton() { std::cout << "ctor" << std::endl; }
        ~Singleton() { std::cout << "dtor" << std::endl; }
        static Singleton one;
    
    public:
        static Singleton *getInstance() { return &one; }
    };
    Singleton Singleton::one;
    
    int main()
    {
        Singleton *one = Singleton::getInstance();
        Singleton *two = Singleton::getInstance();
        if (one == two) std::cout << "same instance!" << std::endl;
        else std::cout << "Not the same!" << std::endl;
    
        return 0;
    }
    //"ctor"
    //"same instance!"
    //"dtor"
    

    相关文章

      网友评论

          本文标题:面试题2:C++ 单例模式最简单最安全实现

          本文链接:https://www.haomeiwen.com/subject/mcngxqtx.html