Сколько таблиц виртуальных функций будет у двух классов, участвующих в наследовании?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Количество таблиц виртуальных функций (vtable) зависит от типа наследования и наличия виртуальных функций в каждом классе.
При простом наследовании:
- Базовый класс без виртуальных функций: 0
- Базовый класс с виртуальными функциями: 1
- Наследник без своих виртуальных функций: 0 (при наследовании обычных функций) или 1 (при наследовании виртуальных функций базового класса)
- Наследник со своими виртуальными функциями (даже если базовый класс не имел виртуальных функций): 1
При наличии виртуальных функций в базовом классе и их переопределении в наследнике, или добавлении новых виртуальных функций в наследник, каждый класс будет иметь свою vtable.
При множественном наследовании может быть больше одной vtable на объект, если наследуется от нескольких классов с виртуальными функциями.
Таким образом, у двух классов, участвующих в наследовании, может быть от 0 до 2 таблиц виртуальных функций на каждый объект, в типичном случае простого наследования с виртуальными функциями, обе класса будут иметь по одной vtable.