Junior — Middle
Aké sú výhody a nevýhody používania virtuálnych tabuliek?
sobes.tech AI
Odpoveď od AI
Virtuálne tabuľky (vtable) sú mechanizmus v objektovo orientovanom programovaní, ktorý sa používa na implementáciu dynamického polymorfizmu (virtuálnych funkcií).
Výhody:
- Umožňujú volať metódy odvodených tried cez ukazovateľ alebo odkaz na základnú triedu.
- Ponúkajú flexibilitu a rozšíriteľnosť kódu.
- Zjednodušujú údržbu a pridávanie nových tried bez zmeny existujúceho kódu.
Nevýhody:
- Malé zníženie výkonu kvôli ďalšej úrovni nepriameho volania funkcií.
- Zvýšenie veľkosti objektu kvôli ukazovateľu na virtuálnu tabuľku.
- Zložitosť implementácie a pochopenia pre začiatočníkov.
Prí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 vďaka vtable