Possible Duplicate:
C++ Singleton design pattern.




如何仅创建一个类的实例,并与所有头文件和源文件共享该实例,而不使用单例?你能提供一个简单的例子吗?

最佳答案

你可以这样做:

class Sample
{
   /*** your code **/
   public:
    Sample();
    void DoWork();
    int  GetValue();
  /*** other functions ***/
};

Sample & OneInstance()
{
    static Sample instance;
    return instance;
}

//Use OneInstance everywhere like this
OneInstance().DoWork();


注意Sample不是Singleton,但是您可以使用OneInstance()函数,就像它是Sample的一个实例一样,并且在任何地方都可以使用它!

您可以使用它来初始化一些全局变量,如下所示:

int g_SomeValue= OneInstance().GetValue();


无法使用static的全局Sample实例来完成。这是因为:

static initialization order fiasco

10-04 22:00
查看更多