class Base { void func1(); virtual void func2(float); virtual void func3() const; virtual long func4(int); virtual void h(int) final; }; class Derived: public Base { virtual void func1() override; // ERROR virtual void func2(double) override; // ERROR virtual void func3() override; // ERROR virtual int func4(int) override; // ERROR virtual long func4(int) override; // OK virtual void h(int); // ERROR virtual void h(double); // OK };