Tag : Bejelentkezés |Bejegyzés |Feltöltés ismeretek
Keresés
Virtuális módszer táblázat [Módosítás ]
A virtuális módszertábla (VMT), a virtuális funkciótáblázat, a virtuális hívástáblázat, a feladó táblák, a vtable vagy a vftable egy mechanizmus, amelyet a programozási nyelvben használnak a dinamikus feladás (vagy a futásidejű módszer kötése) támogatására.
Ha egy osztály egy virtuális függvényt (vagy metódust) határoz meg, akkor a legtöbb fordító hozzá egy rejtett tagváltozót az osztályhoz, amely a virtuális metódus-táblázat (VMT vagy Vtable) nevű virtuális metódus (virtuális) függvények felé mutat. Ezeket a mutatókat a futásidőben használják, hogy felhívják a megfelelő funkcionális implementációkat, mert a fordítási időben még nem ismert, hogy az alapfunkciót hívják-e le, vagy egy származtatott osztályt, amelyet az alap osztályból örökölt osztály hajt végre.
Tegyük fel, hogy egy program több osztályt tartalmaz az öröklési hierarchiában: egy szuperosztály, egy macska és két alosztály, HouseCat és Lion. A Cat kategória egy virtuális függvényt határoz meg, melynek neve szó, ezért alosztályai megfelelő végrehajtást biztosíthatnak (például meow vagy ordítás).
Amikor a program a Cat-referenciára hívja a beszéd funkciót (amely utalhat a Cat példányára vagy a HouseCat vagy Lion egy példányára), akkor a kódnak képesnek kell lennie meghatározni, hogy a hívás melyik funkciójának végrehajtása legyen. Ez attól függ, hogy az objektum tényleges osztályát, nem pedig a bejelentett Cat osztályát. Az osztályt általában nem lehet statikusan meghatározni (azaz fordítási időben), így a fordító sem tudja eldönteni, hogy melyik funkciót hívja fel. A hívást a jobb funkcióhoz dinamikusan (vagyis futási idő alatt) kell elküldeni.
Az ilyen dinamikus küldés számos különböző módon valósítható meg, de a hordozható (virtuális asztal) megoldás különösen gyakori a C és a kapcsolódó nyelvek (például a D és a C #) között. Az objektumok programozási felületét különféle elválasztó nyelvek, mint a Visual Basic és a Delphi, ugyancsak hajlamosak a vtable megközelítésre, mivel lehetővé teszik az objektumok számára, hogy más módszert használjanak egyszerűen egy másik módszermutató használatával.
[Programozási nyelv][Virtuális funkció][D: programozási nyelv]
1.Végrehajtás
2.Példa
3.Többszörös öröklés és thunks
4.könyörgés
5.Hatékonyság
6.Összehasonlítás az alternatívákkal
[Feltöltése Több Tartalom ]


Szerzői jog @2018 Lxjkh