读书人

关于Singleton模式继承的有关问题

发布时间: 2012-02-11 09:51:35 作者: rapoo

关于Singleton模式继承的问题?
定义一个Singleton类,一般都是要被其他实际的类继承,使这个实际的类具有Singleton功能。
现在看到二种方式。
1、用模板定义Singleton类:
template <typename T> class Singleton {...}
然后这样继承:
class WindowManager : public Singleton <WindowManager> {...}

2、直接继承:
class Singleton {...}
然后这样继承:
class WindowManager : public Singleton {...} // 重载getSingleton返回子类指针。

这二种方式哪种方式好哪?
第一种方式是CEGUI中使用的方法,毕竟比较成熟,但好像麻烦一些。
第二种方式只是网上网友写的方法,只有几行简单的示例代码,不知道是不是正确?
请前辈指点,谢谢!

[解决办法]
还需要申明一下友元类;

C/C++ code
template <typename T> class Singleton {private:  friend class T;};class WindowManager : public Singleton <WindowManager> {...} 

读书人网 >软件开发

热点推荐