Virtual base classes apply only to data members, not to methods.
It doesn't matter if it overrides C::f A::for B::f- it's the same thing.
This comment can be changed to C::foverride B::f, and it still means the same thing.
Consider the following hierarchy (without virtual base classes)
class A { virtual void foo(); }
class B : public A { void foo(); }
class C : public B { void foo(); }
B::foo A::foo. C::foo B::foo. , C::foo A::foo.
, , . , .