#include <iostream>
class A
{
public:
void sayHi(); //cannot be overridable because is not virtual
virtual void sayBye(); //can be overridable because is virtual
virtual void say() final; //is a virtual function but can not be overridable because is final
};
class B : A
{
public:
void sayHi() override;
void sayBye() override;
void say() override;
};
main.cpp:26:14: error: 'void B::sayHi()' marked override, but does not override
main.cpp:35:14: error: virtual function 'virtual void B::say()'
main.cpp:16:22: error: overriding final function 'virtual void A::say()'
virtual void say() final;