从单例模板继承
Inheriting from a singleton template
我在看一个开源库VLMC,发现了这个单例的实现。这样做的方式是,为了创建一个单例类"Library",Library继承自一个单例类。这样的
//SINGLETON_HPPtemplate <typename T>
class Singleton
{
//regular singleton implementation
protected:
Singleton(){}
virtual ~Singleton(){}
};
template <typename T>
T* Singleton<T>::m_instance = NULL;
//LIBRARY_H_ class Library : public Singleton<Library>
{
//some other stuff
private:
Library();
virtual ~Library(){}
friend class Singleton<Library>;
}
这个设计好吗?这种设计有什么优点?谢谢你。
CV
如果你需要一个类的实例放在所有人都能看到的全局位置,那么创建一个实例并把它放在每个人都能看到的地方。让类知道它将存在多少个实例是糟糕的设计,并且限制了类的基本使用。
我不止一次看到一个在项目开始时看起来像单例的类在项目结束时几乎没有实例。
相关文章:
- 为什么在单例中,检查类==空?
- C++ 实现模板单例类时出现链接错误
- 在类中存储单例的指针
- C++中的单例实现在调用 getInstance 函数时不会产生相同的类实例
- 具有非默认构造函数的单例类
- 使用 std::call_once 实现类似单例的功能
- 为什么单例使用指针而不是引用?
- 提升单例池release_memory vs purge_memory
- 具有 QObject 继承的单例 - Qt
- 单例类析构函数无法清理 (SDL_Quit) MinGW
- C++单例,不会为此文档加载任何符号
- 使用 CRTP 实现单例
- C++单例模板类使我的程序崩溃
- 初学者C++线程安全单例设计
- 继承的模板化单例类 c++ 中未定义的构造函数
- 单例继承c++实现
- 从单例模板继承
- 多重继承和单例设计模式
- 单例继承链接器错误
- 从单例类调用继承类的析构函数