假设我有以下基类:
如果我想写一个类来覆盖
class MyBaseClass:
class Base {
public:
virtual void f() {};
};
如果我想写一个类来覆盖
f()
并且不允许派生类对其进行覆盖,可以使用以下方法:
方法1:
class Derived : public Base {
public:
virtual void f() override final {};
};
方法二:
class Derived : public Base {
public:
void f() final {};
};
方法一
是完全详细的,而方法二
更加简洁,final
仍然表明f()
实际上是虚函数并且覆盖了基类方法。
哪种方法更恰当呢?