Sobes.tech
Junior — Middle

Vysvetlite princíp fungovania Witness Table (Svedok Tabuľka) v kontexte implementácie virtuálnych funkcií v objektovo orientovanom programovaní.

sobes.tech AI

Odpoveď od AI

Tabuľka svedkov (Witness Table) je dátová štruktúra používaná pri implementácii virtuálnych funkcií v niektorých jazykoch a prekladačoch (napríklad Swift) na podporu dynamickej distribúcie a protokolov.

Obsahuje ukazovatele na implementácie metód, ktoré trieda alebo štruktúra poskytuje pre dané rozhranie alebo protokol. Pri volaní virtuálnej metódy cez rozhranie systém odkazuje na tabuľku svedkov, aby našiel správnu implementáciu.

Týmto spôsobom tabuľka svedkov zabezpečuje:

  • Prepojenie medzi rozhraním (protokolom) a konkrétnou implementáciou metód
  • Podporu polymorfizmu a dynamického volania metód

Príklad: ak trieda implementuje protokol s metódami A a B, tabuľka svedkov bude obsahovať ukazovatele na konkrétne funkcie A a B tej triedy. Pri volaní cez protokol systém používa túto tabuľku na volanie potrebnej implementácie.