Каковы преимущества и недостатки использования виртуальных таблиц?

Виртуальные таблицы (vtable) — это механизм в объектно-ориентированном программировании, который используется для реализации динамического полиморфизма (виртуальных функций).

Короткий ответ

Что ответить на собеседовании

Виртуальные таблицы (vtable) — это механизм в объектно-ориентированном программировании, который используется для реализации динамического полиморфизма (виртуальных функций).

Подробный разбор

Ответ с пояснениями

Виртуальные таблицы (vtable) — это механизм в объектно-ориентированном программировании, который используется для реализации динамического полиморфизма (виртуальных функций).

Преимущества:

  • Позволяют вызывать методы производных классов через указатель или ссылку на базовый класс.
  • Обеспечивают гибкость и расширяемость кода.
  • Упрощают поддержку и добавление новых классов без изменения существующего кода.

Недостатки:

  • Небольшое снижение производительности из-за дополнительного уровня косвенного вызова функций.
  • Увеличение размера объекта за счет указателя на виртуальную таблицу.
  • Сложность реализации и понимания для новичков.

Пример на C++:

class Base {
public:
    virtual void foo() { std::cout << "Base" << std::endl; }
};

class Derived : public Base {
public:
    void foo() override { std::cout << "Derived" << std::endl; }
};

Base* b = new Derived();
b->foo(); // Вызовет Derived::foo благодаря vtable

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку