Thus when a Base1 or Derived pointer is assigned the address of a Derived class object, the virtual table being accessed is the primary virtual table vtbl__Derived. When a Base2 pointer is assigned the address of a Derived class object, the virtual table being accessed is the second virtual table vtbl__Base2__Derived.