Sobes.tech
Back to questions
Junior — Middle
63

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

Answer from AI

sobes.tech AI

Виртуальные таблицы (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