以下代码是否有助于惰性初始化
还是在有人包含 header (甚至在程序启动时)后立即创建singletonInstance

class SingletonClass
{
    private:
         SingletonClass();
        ~SingletonClass();

    public:

        static const SingletonClass& Instance()
        {
            static SingletonClass singletonInstance;
            return singletonInstance;
        }
};

最佳答案

这被称为Meyers singleton,它们是惰性实例化的。

有一些注意事项:

  • 单例将按照创建它们的相反顺序在程序末尾销毁,因此可能存在依赖性问题。
  • C++ 03不能保证在多线程环境中不会出现竞争条件。
  • 关于c++ - 单例模式的延迟初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21252296/

    10-12 23:52