包含虚函数的类可以成为单例
Can a class containing virtual function made singleton?
一个包含虚函数的类可以成为单例吗?
只是
class A:public B
{
public:
virtual fun(); //will be defined by this class (inherited from Class B)
}
我可以使这个类成为单例吗?
如果你问这是否可能,那么是的,当然,完全有可能从这样的类中创建单例。
如果你问它是否有意义,那么这个问题就更难回答了;但主要是因为单例通常是一个非常有争议的模式。所以你可能想问问自己你是否真的需要一个单例(例如,单例通常会使测试变得更加困难,你必须引入特殊的"解决方法"来让类在测试中使用它们;基本上,它们是非常薄的全局变量(。
您还必须详细说明预期的用例:当您声明方法虚拟时,您基本上会说某个子类可能想要更改该行为。如果基类是单例,则意味着只能有一个基类。这是否必须适用于所有子类?您的系统中是否应该只有一个从该类派生的类?然后,您最好看看工厂,并可能将它们与Singleton结合使用(同样,如果您决定确实需要Singleton(。
相关文章:
- C++中的单例实现在调用 getInstance 函数时不会产生相同的类实例
- 具有非默认构造函数的单例类
- 单例类析构函数无法清理 (SDL_Quit) MinGW
- 如何析构单例实例,或者为什么以下代码适用于析构函数?
- 我的单例中的数组在离开函数后没有保留信息,然后在尝试再次访问信息时崩溃
- 函数内具有静态变量的单例类(迈耶实现)
- 便携式C++单例 - 何时调用析构函数
- 具有局部静态变量的单例构造函数
- 继承的模板化单例类 c++ 中未定义的构造函数
- 为什么调用单例类 Qt 消息处理程序成员函数会出现错误:缺少参数列表
- 单例:为什么不需要删除并且看不到析构函数调试消息
- 构造函数在不同线程中的静态单例类上调用两次
- 为什么在C 中创建单例类创建期间静态函数参考静态变量
- 为什么在单例类中私有析构函数
- 带有构造函数参数的单例
- 在单例类上调用的复制构造函数
- 单例设计模式 - 显式声明类外的构造函数
- 未在单例 DLL 中定义的纯虚函数
- 为什么我们在C++的单例模式中使用静态方法和静态函数
- 包含虚函数的类可以成为单例