基类的虚函数的虚拟限定符在派生类中是否有区别?

class b
{
   public:
   virtual void foo(){}
};

class d : public b
{
  public:
  void foo(){ .... }
};

或者
class d : public b
{
  public:
  virtual void foo(){ .... }
};

这两个声明除了使d的子代意识到foo()的虚假性之外,是否还有其他区别?

最佳答案

没什么区别。 foo在从b(及其后代)派生的所有类中都是虚拟的。

根据C++ 03标准§10.3.2:

关于c++ - 派生类中的虚拟限定词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7098054/

10-11 19:34