Sobes.tech
Middle+
232

Wie viele Tabellen für virtuelle Funktionen werden bei zwei Klassen, die an der Vererbung beteiligt sind, vorhanden sein?

Antwort von AI

sobes.tech KI

Количество таблиц виртуальных функций (vtable) зависит от типа наследования и наличия виртуальных функций в каждом классе.

При простом наследовании:

  • Базовый класс без виртуальных функций: 0
  • Базовый класс с виртуальными функциями: 1
  • Наследник без своих виртуальных функций: 0 (при наследовании обычных функций) или 1 (при наследовании виртуальных функций базового класса)
  • Наследник со своими виртуальными функциями (даже если базовый класс не имел виртуальных функций): 1

При наличии виртуальных функций в базовом классе и их переопределении в наследнике, или добавлении новых виртуальных функций в наследник, каждый класс будет иметь свою vtable.

При множественном наследовании может быть больше одной vtable на объект, если наследуется от нескольких классов с виртуальными функциями.

Таким образом, у двух классов, участвующих в наследовании, может быть от 0 до 2 таблиц виртуальных функций на каждый объект, в типичном случае простого наследования с виртуальными функциями, обе класса будут иметь по одной vtable.