На моем GCC:
std::cout << sizeof(void*) << ' ' << sizeof(Derived) << '\n';
// Prints 8 8
Так что достаточно одного указателя vtable. Я ожидаю, что большинство других компиляторов будут вести себя так же.
производный класс также имеет виртуальную функцию, которой нет в Базовом классе
Виртуальные функции, добавленные в Derived
, вероятно, просто помещаются в конец Derived
vtable после функций, унаследованных от Base
.