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