我正在阅读一篇很棒的 awesome C++11 tutorial并且作者在解释 final
关键字时提供了这个例子:
struct B {
virtual void f() const final; // do not override
virtual void g();
};
struct D : B {
void f() const; // error: D::f attempts to override final B::f
void g(); // OK
};
那么在这里使用 final
关键字有意义吗?在我看来,您可以避免在此处使用 virtual
关键字并防止 f()
被覆盖。
最佳答案
如果不将函数标记为virtual
和final
,那么子类仍然可以实现该函数并隐藏基类函数。
通过使函数virtual
和final
,子类不能重写或隐藏函数。
关于c++ - 在没有基类(非派生)的类中为虚函数添加 final 关键字是否有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44153281/