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]