Dynamic Binding Mechanism
When a member function is to be bound to a pointer or
reference at run time, the function accessed is obtained by
selecting the correct member function pointer out of the
virtual table pointed to by the current object's virtual
pointer. It doesn't matter what the type of the object is, its
virtual pointer will point to the correct virtual table of
function pointers for that object.
Note the additional costs of dynamic binding. With static
binding, a member function is directly bound to an object.
With dynamic binding, three additional levels of
indirection may be needed to bind the correct member
function pointer with a pointer or reference to an object.