Если у меня есть эта ситуация в проекте С++:
- 1 базовый класс «Base», содержащий только чистые виртуальные функции
- 1 класс «Производный», который является единственным классом, наследуемым (общедоступным) от «Базового»
Будет ли компилятор генерировать VTABLE?
Кажется, в этом нет необходимости, потому что проект содержит только 1 класс, на который может указывать указатель Base* (Derived), так что это может быть решено во время компиляции для всех случаев.
Это интересно, если вы хотите выполнить внедрение зависимостей для модульного тестирования, но не хотите нести затраты на поиск VTABLE в производственном коде.