If a function is declared non-virtual in a derived class when the base class function was virutal, why does it invoke a vtable lookup on calling the function on its pointer? The
The function is still virtual (assuming it has the same or a covariant signature). Using virtual when overriding is redundant.
virtual