Explain the use of Vtable.- Vtables are used for virtual functions. Its a shortform for Virtual Function Table.
- It's a static table created by the compiler. Compiler creates a static table per class and the data consists on pointers to the virtual function definitions. They are automatically initialised by the compiler's constructor code.
- Since virtual function pointers are stored in each instance, the compiler is enabled to call the correct vrtual function at runtime.
Explain the use of Vtable.- If Base declares a member function and Derived declares a member function with same name but different parameter types, then the Base function is "hidden" rather than "overloaded" or "overridden" even if the Base function is virtual.
- The solution to that is that a Derived must have a using declaration of the hidden member function OR redefine the hidden Base member function(s), even if they are non-virtual.
- Normally this re-definition merely calls the hidden Base member function using the :: syntax.