说我有这个代码:
#include <iostream>
using namespace std;
class Something
{
int field1;
static Something *nill;
static bool initialized;
static void initialize() {
if (initialized)
return;
initialized = true;
}
public:
static Something* Nill()
{
initialize();
return nill;
}
static Something* Singleton(int field1)
{
initialize();
Something *ret = new Something();
ret->field1 = field1;
return ret;
}
}
Something* Something::nill = new Something();
bool Something::initialized = false;
int main(void)
{
Something *smth = something->Nill();
return 0;
}
为什么没有“某物”单例课程,我怎么能做到这一点?另外,如何将这段代码分成两个文件.h和.cpp?我遇到了问题,因为我在这里有一些全局变量,而且我不知道如何在其他文件中使用它们。
说我有这段代码:#include
这不是单例课程。 Singleton类表示在任何给定时间内,该类的实例不能超过1个。在您的示例中,您不仅要创建一个新实例,甚至还要在其方法中返回新的类对象。