An object's vtable pointer is updated in the constructor member initialization list.
class MyClass
{
MyClass() : // CBase() - base class constructor is called first
__vfptr(&MyClass::vftable) // compiler generated vtable pointer assignment
{
// vtable ptr is valid up to and including this class (MyClass)
//
// virtual methods called from the constructor body will execute overloads up to MyClass only
//
}
}
Note: Names prefixed with a double underscore are reserved for the compiler's internal use.