派生类使用或不带 "virtual" 前缀重写基类的虚函数之间有什么区别?

What's the difference between the Derived class override the base class's virtual function with or not with a "virtual" prefix?

本文关键字:函数 之间 区别 什么 基类 前缀 派生 virtual 重写      更新时间:2023-10-16
class A
{
    virtual void funcion()
    {
        //...
    }
}
class B:public A
{
     //1:virtual void function();
     //2:void function();
}

1和2有什么区别?还是一样?

它们是一样的。在基类中声明virtual的函数在整个继承链中virtual

我发现为了清楚起见,添加virtual很有用(通常情况下,这些类不在同一文件中(。

它们完全相同。在基类中声明函数virtual后,默认情况下,从该函数继承的任何类也将将该函数声明为virtual