Tabulka virtuá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 virtuální funkce. Při běhu (při inicializaci run-time) budou tyto pointery 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, jako při statické deklaraci.
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.
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.