Junior — Middle
Vysvětlete princip fungování tabulky svědků (Witness Table) v kontextu implementace virtuálních funkcí v objektově orientovaném programování.
sobes.tech AI
Odpověď od AI
Tabulka svědků (Witness Table) je datová struktura používaná při implementaci virtuálních funkcí v některých jazycích a kompilátorech (například Swift) k podpoře dynamického rozesílání a protokolů.
Obsahuje ukazatele na implementace metod, které třída nebo struktura poskytuje pro dané rozhraní nebo protokol. Při volání virtuální metody přes rozhraní systém odkazuje na tabulku svědků, aby našel správnou implementaci.
Tímto způsobem tabulka svědků zajišťuje:
- Spojení mezi rozhraním (protokolem) a konkrétní implementací metod
- Podporu polymorfismu a dynamického volání metod
Příklad: pokud třída implementuje protokol s metodami A a B, tabulka svědků bude obsahovat ukazatele na konkrétní funkce A a B této třídy. Při volání přes protokol systém používá tuto tabulku k volání potřebné implementace.