在一篇文中看到了模版类实现SInglton模式,小尝试了一下
跟JAVA的泛形类很相似。不过感觉还是有点不同 。感觉就是在编译的时候,会多编译这么一份用过的模版。?
template<class T>
class Singleton {
public:
static T* instance(){
if(!_instance){
_instance = new T();
}
return _instance;
}
private:
static T* _instance;
protected:
virtual bool init(){ return true; };
Singleton(){
init();
}
};
template<class T> T* Singleton<T>::_instance = NULL;
需要单一实例的类,之需要继承 Singleton即可
如
class GameResourceManager : public Singleton<GameResourceManager>