Виртуальная таблица будет создаваться только в том случае, если в базовом классе есть хотя бы одна виртуальная функция 1, которая будет в любом случае унаследована от производных классов. Это не имеет значения, даже если вы удалите виртуальное ключевое слово из производного класса B, поскольку вы уже виртуальное веселье () в А.
Таким образом, количество виртуальных таблиц будет равно 2 (в расчете на класс), а количество виртуальных ptrs также будет равно 2 в расчете на объект. VTABLE для A --- v_ptr *, A :: fun ()
& VTABLE для B --- V_ptr * (который был унаследован от A), B :: fun () / * B имеют доступ как к A :: fun & B's fun (), но так как мы упомянули A :: fun (), так как виртуальная таблица виртуальной B заполнена самой производной версией функции fun (), которая является ничем иным, как B :: fun (). Надеюсь, это очистит ваше сомнение