首页 > 解决方案 > 派生类中的虚函数行为

问题描述

我可以virtual在基类中有一个函数吗,我的一些派生类确实有这个函数,有些没有。

class A{
   virtual void  Dosomething();
};

class B : public A{
   void  Dosomething();
};

class C : public A{
  //Does not have Dosomething() function.
};

标签: c++

解决方案


来自我的一本 C++ 教科书:

一旦一个函数被声明为 virtual,它在继承过程中一直保持为 virtual,即使在派生类覆盖它时该函数没有显式声明为 virtual。当派生类选择不覆盖它时,它只是继承其基类的虚函数。

因此,对于您的问题,答案是否定的。c 类将使用 A 类的虚函数。


推荐阅读