Sobes.tech
Junior — Middle

Jaké jsou výhody a nevýhody používání virtuálních tabulek?

sobes.tech AI

Odpověď od AI

Virtuální tabulky (vtable) jsou mechanismus v objektově orientovaném programování, který se používá k implementaci dynamického polymorfismu (virtuálních funkcí).

Výhody:

  • Umožňují volání metod odvozených tříd přes ukazatel nebo odkaz na základní třídu.
  • Nabízejí flexibilitu a rozšiřitelnost kódu.
  • Zjednodušují údržbu a přidávání nových tříd bez změny stávajícího kódu.

Nevýhody:

  • Malé snížení výkonu kvůli dalšímu úrovni nepřímého volání funkcí.
  • Zvýšení velikosti objektu kvůli ukazateli na virtuální tabulku.
  • Složitost implementace a pochopení pro začátečníky.

Příklad v 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(); // Zavolá Derived::foo díky vtable