Virtuelle Methoden

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Dispatch-Methoden


Virtuelle Methoden arbeiten mit einem komplizierteren und flexibleren Dispatch- Mechanismus als statische Methoden. Eine virtuelle Methode kann in der abgeleiteten Klasse neu definiert werden, während sie weiterhin in der Vorfahrklasse aufgerufen wird. Die Adresse einer virtuellen Methode wird nicht während der Compilierung festgelegt. Stattdessen sucht das Objekt, in dem die Methode definiert wird, die Adresse zur Laufzeit.

Um eine Methode als virtuell Methode zu definieren, fügen Sie am Ende der Methodendeklaration die Direktive virtual hinzu. Die Direktive virtual erzeugt einen Eintrag in der virtuellen Methodentabelle (VMT) des Objekts. In dieser Tabelle sind die Adressen aller virtuellen Methoden eines Objekttyps enthalten.

Wenn Sie eine neue Klasse von einer bestehenden ableiten, erhält die neue Klasse eine eigene VMT, die alle Einträge aus der VMT des Vorfahren und zusätzlich die Methoden enthält, die in der neuen Klasse deklariert wurden.

Siehe auch