Dynamic Binding Mechanism
Dynamic binding delays until run time the binding of a
member function to a pointer or reference and requires that
the compiler generate code to select the correct member
function at run time instead of compile time.
Some implementations create an array of member function
pointers for all virtual functions. Each derived class has its
own unique array of pointers. Functions that are inherited
result in pointers to direct or indirect base class member
functions. Functions that are overridden result in pointers to
the derived class member functions. Each virtual function
has the same index in this table for each derived class. Only
one table exists per class that is shared by all objects of a
class.