Since you are using a pure base class, the difference should not be important, since your optimizer will avoid calling a virtual function when calling A::f() , since there will never be a derived class that implements another version of f() .
You can also make class A final : base , if you do not plan to inherit from A , so as not to add final to each function.
source share