В дополнение к тому, что сказал Джеймс Канзе, возможно, стоит упомянуть, что (в типичной реализации) виртуальная таблица B будет содержать виртуальную таблицу A. в ее начале.
Например:
class A {
virtual void x();
virtual void y();
};
class B : A {
virtual void y();
virtual void z();
};
Виртуальная таблица A:
Виртуальная таблица B:
Вот почемуэкземпляр B может обойтись только одним указателем виртуальной таблицы.
Кстати, множественное наследование может несколько усложнить ситуацию и ввести несколько указателей виртуальных таблиц на объект.
Всегда помните, что всеэто деталь реализации, и вы никогда не должны писать код, который от нее зависит.