template <typename T>
class Singleton
{
protected:
Singleton() {}
Singleton(const Singleton& single) {}
~Singleton() {}
protected:
static T* m_pInst;
public:
static T* GetInst()
{
if (!m_pInst)
m_pInst = new T;
return m_pInst;
}
static void DesInst()
{
if (m_pInst)
delete m_pInst;
m_pInst = NULL;
}
};
template <typename T>
T* Singleton<T>::m_pInst = NULL;
템플릿으로 하면 선언되는 자료형 T 에 따라 static 변수가 여러개 생길줄알았는데 자식클래스에서 static 변수를 정의하려니 오류가 생기네요..
template <typename T>
T* Singleton<T>::m_pInst = NULL;
이런식으로 작성했을때 오류가 안났는데 맞는 방법일까요? 어떻게 저런방식이 허용되는지 궁금합니다