#ifndef _INSTANCE_H_
#define _INSTANCE_H_

template <class T>
class Instance
{
private:
	
	//static T* _instance;
public:
	Instance();
	~Instance();
	static T& Get();
};


/*
template <class T>
Instance<T>::Instance()
{
	_instance = 0;
}

template <class T>
Instance<T>::~Instance()
{
	if ( _instance )
		delete _instance;
}

*/

template <class T>
T& Instance<T>::Get()
{
	static T* _instance;
	if ( _instance == 0)
		_instance = new T;
	return *_instance;
}

#endif
