아까 자반칼치횽이 일러준 부분이기도 하고,
예전부터 단일체 클래스의 상속의 위험성에 대해서도 논한 적이 많았는데,
이렇게 하면 되지 않을까 싶어.
코드를 전부 여기에 가져오긴 귀찮고 코드패드로 대체.
http://codepad.org/QvDrRHZm
SingletonHolder란 클래스를 새로 만들었는데,
보다시피 단일체인 클래스에서 계통 클래스들 중에서 단 하나만 인스턴스가 만들어질 수 있도록 하는 클래스야.
계통 구조에서 최상위 클래스를 찍어주면 되겠지.
저 코드에서는 Foo가 먼저 생성이 되었기 때문에, Bar::GetInstance()가 Foo의 인스턴스를 반환하는 거고,
만약에 Foo::GetInstance() 이전에 Bar::GetInstance()를 해버리면, Foo::GetInstance()는 Bar의 인스턴스를 반환하겠지.
혹시 좀 더 엄격하게 하려면, 이미 인스턴스가 있을 때, 다른 계층의 클래스에서 GetInstance()가 호출 되었을 때 assert를 해도 될 테고.
오 매직아이당
ㄴ오.. 그 사실을 이제 알았다.. 오오오..;
ㅁㄴㅁa 횽이 gpg에서 그 이쁜여자사진으로 순진한 개발자들 낚는 그 횽이군하..
ㄴ뭥미;;;