包含虚函数的类可以制作单例吗?

时间:2013-10-10 06:46:24

标签: c++ visual-c++

包含虚函数的类是否可以构成单例?

简单地

class A:public B
{
   public:
   virtual fun();  //will be defined by this class (inherited from Class B)
}

我可以让这个班级单身吗?

1 个答案:

答案 0 :(得分:1)

如果你问是否可能,那么是的,当然,完全有可能从这样一个类中创建一个单例。

如果你问这是否有意义,那么这个问题就更难回答了;但主要是因为一般的单身人士是一个非常有争议的模式。所以你可能想问问自己,你是否真的需要一个单身人士(单身人士通常会更加努力地进行测试,你必须引入特殊的“变通办法”才能让他们在测试中使用它们;基本上,他们是非常薄弱的​​全局变量)。

您还需要详细说明预期的用例:当您声明一个方法虚拟时,您基本上会说某些子类可能想要更改该行为。如果基类是单例,则意味着只能有一个基类。同样必须适用于所有子类吗?是否只有一个类派生自系统中存​​在的类?然后你最好看看工厂,并可能将它们与Singleton一起使用(再次,如果你决定真的需要 Singleton)。