2010년 6월 25일 금요일

Simple Singleton Example


From : http://sourcemaking.com/design_patterns/singleton/cpp/1

class GlobalClass

{

...
static GlobalClass *instance()

{

if (!s_instance)

s_instance = new GlobalClass;

return s_instance;

}
...

};

// Allocating and initializing GlobalClass's

// static data member. The pointer is being

// allocated - not the object inself.

GlobalClass *GlobalClass::s_instance = 0;


void foo(void)

{

GlobalClass::instance()->set_value(1);

cout << "foo: global_ptr is " << GlobalClass::instance()->get_value() << '\n';

}
  
 위에서 보는 것처럼 단지 공유 객체 포인터를 static으로만 선언하는 것만으로는불 충분하다. 좀 괜찮게 보일 될려면 GlobalClass::instance() 이렇게 한 꺼풀더 씌우자
From : http://sourcemaking.com/design_patterns/singleton/cpp/1

댓글 없음: