override — ensures virtual function override. final — prevents further overriding.
1class Base {2public:3 virtual void func() {4 std::cout << "Base\n";5 }67 virtual void pureFunc() = 0;8};910class Derived : public Base {11public:12 // override — compile-time check13 void func() override {14 std::cout << "Derived\n";15 }1617 // final — no more overriding18 void pureFunc() final override {19 std::cout << "Final\n";20 }21};2223// class MoreDerived : public Derived {24// public:25// void pureFunc() override {} // Error! final26// };
override:
final: