此代码可以很好地用作Singleton模式的实现。
我想了解Singleton *Singleton::obj = 0;
。
这是做什么的,为什么那么重要?
请解释。
#include <stdio.h>
class Singleton
{
private:
static Singleton *obj;
Singleton()
{
obj = NULL;
}
unsigned int zero = 0;
public:
static Singleton * getObject()
{
if( obj == NULL )
obj = new Singleton();
else
printf( "\nMemory has already been allocated!\n" );
return obj;
}
void addToZero()
{
zero++;
printf( "\nzero has now become: %d\n", zero );
}
};
Singleton *Singleton::obj = 0;
int main()
{
Singleton *p = Singleton::getObject();
p->addToZero();
Singleton *p1 = Singleton::getObject();
p1->addToZero();
}