Tabulka virtuálních metod

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Tabulka vurtuálních metod, zkráceně TVM, je implementační mechanizmus používaný v programovacích jazycích pro podporu dynamického výběru (dynamic dispatch) funkcí za běhu.

Kdykoli třída (z OOP) definuje virtuální funkci (nebo metodu), kompilátor většinou přidá schovanou členskou proměnnou do třídy, která ukazuje na tabulku virtuálních metod. Tato TVM je v principu pole ukazatelů na na virtuální funkce. Při běhu (při inicializaci run-time) budou tyto pointry ukazovat na správné funkce, protože při kompilaci není známo, zda má být virtuální funkce volána z předka nebo z potomka.

Je několik různých způsobů, jak implementovat dynamický výběr. Tabulka virtuálních metod je populární řešení v C++ a příbuzných jazycích (např. D a C#).

V tomto článku byl použit překlad textu z článku Virtual method table na anglické Wikipedii.