Sobes.tech
Junior — Middle

Magyarázza el a Witness Table (Tanú Tábla) működési elvét az objektumorientált programozásban a virtuális függvények megvalósítása során.

sobes.tech MI

Válasz az MI-től

Tanúasztal (Witness Table) egy adatszerkezet, amelyet néhány nyelv és fordító (például Swift) virtuális függvények megvalósításában használnak, hogy támogassák a dinamikus elosztást és a protokollokat.

Tartalmaz mutatókat azoknak a metódusoknak a megvalósításaira, amelyeket egy osztály vagy szerkezet biztosít egy adott interfész vagy protokoll számára. Amikor virtuális metódust hívunk meg az interfészen keresztül, a rendszer a tanúasztalra néz, hogy megtalálja a helyes megvalósítást.

Így a Tanúasztal biztosítja:

  • A kapcsolatot az interfész (protokoll) és a konkrét metódus-implementációk között
  • A polimorfizmus és a dinamikus metódushívás támogatását

Példa: ha egy osztály megvalósít egy protokollt az A és B metódusokkal, a tanúasztal mutatókat tartalmaz az adott osztály A és B funkcióira. A protokollon keresztüli híváskor a rendszer ezt a táblát használja a szükséges megvalósítás meghívására.