Я читаю удивительный удивительный учебник по С++ 11, и автор предоставляет этот пример, объясняя ключевое слово 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()
.