Conceptually, it is the very same thing.
The virtual method table is nothing than a list of function pointers. It is not integrated in the object itself because it is static for the class of the object, so it can be shared among instances of the same class (saving computation power during initialization and memory during the objects whole lifetime).
In C++ specifically, each constructor sets the Virtual Method Table pointer to the pointer of the class to which it belongs. Thus, after the outermost constructor ran, the virtual methods resolve to the class of which the object is.