Tabulka virtuálních metod
Technology
12 hours ago
8
4
2
Author
Albert FloresTabulka 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. +more 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#).