vtable

The C++ standards do not mandate exactly how runtime polymorphism must be implemented, but compilers generally use minor variations on the same basic model.
* vTable: A table of function pointers, maintained per class. Every superclass or subclass that has one or more virtual functions in it has a vTable associated with it. vTable is a static array of function pointers that contains the addresses of all virtual functions of this class. Compiler builds this vTable at compile time.
* vPointer: A pointer to vtable, maintained per object instance. Every object of a class which has a vTable associated with it, contains a vPointer in first 4 bytes. The constructor of the object sets the vPointer. The vPointer points to the vTable of that class. The vPointer will be used to find the actual function adress at runtime.