Native/C++
singletone
aucd29
2013. 10. 2. 19:04
[code]template<class T>
class CSingletone
{
private:
CSingletone();
public:
static CSingletone<T>* m_singleInstance;
static CSingletone<T>& Instance();
public:
virtual ~CSingletone();
};
template<class T> T* CSingletone<T>::m_singleInstance = NULL;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
template<class T>
CSingletone<T>::CSingletone()
{
}
template<class T>
CSingletone<T>::~CSingletone()
{
}
template<class T>
CSingletone<T>& CSingletone<T>::Instance()
{
if (NULL == CSingletone<T>::m_singleInstance)
{
CSingletone<T>::m_singleInstance = new T();
}
return *CSingletone<T>::m_singleInstance;
}
[/code]
class CSingletone
{
private:
CSingletone();
public:
static CSingletone<T>* m_singleInstance;
static CSingletone<T>& Instance();
public:
virtual ~CSingletone();
};
template<class T> T* CSingletone<T>::m_singleInstance = NULL;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
template<class T>
CSingletone<T>::CSingletone()
{
}
template<class T>
CSingletone<T>::~CSingletone()
{
}
template<class T>
CSingletone<T>& CSingletone<T>::Instance()
{
if (NULL == CSingletone<T>::m_singleInstance)
{
CSingletone<T>::m_singleInstance = new T();
}
return *CSingletone<T>::m_singleInstance;
}
[/code]