보통 단일체 템플릿 적용할 때,
class Foo : public Singleton<Foo>
{//...};
이렇게 쓰잖아, 근데
class DerivedFoo : public Foo
{//..};
이렇게 해버리면
DerivedFoo::GetInstance()는 Foo를 반환하게 되거든.
DerivedFoo는 Singleton<Foo>를 상속받고 있으니 말이야.
그렇다면 저렇게 하지 말고,
class Foo
{//..};
class DerivedFoo : public Foo
{//..};
이렇게 하고서
Singleton<Foo>::GetInstance->...
Singleton<DerivedFoo>::GetInstance->...
이렇게 쓰면 되지 않을까 싶어.
물론 관념적으로 좀 이상한 코드긴 하지만 말야.
어떻게 생각해?
횽이 생각한 두번째 단락 에서 Singleton<Foo>::GetInstance->... 을 순수 가상함수로 만들어서 써야지 안그러면 컴파일 에러 날거야 횽아~
ㄴ엥 웬 가상함수;;;