I have a pure abstract interface class, and a derived class which implements the interface.
struct Foo { virtual void doStuff() = 0; }; struct Bar : Foo
Marking the class final remove the warning.
final
struct Bar final : Foo { void doStuff() override { } }; int main() { Bar* f = new Bar; f->doStuff(); delete f; }
Demo