Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#10

AW: Kindmethode aus Elternklasse aufrufen

  Alt 29. Aug 2016, 22:12
Bei Virtual wird direkt die "aktuelle" Methodenadresse in der VMT (VirtualMethodTable, 'nen Array aus Pointern) der Klasse gespeichert und der CALL kann das direkt auslesen (als Index/Offset) und sofort anspringen.

Bei Dynamic wird die Adresse in einer Name/Pointer-Liste gespeichert und beim CALL wird über den Methodennamen erstmal der Pointer in der Liste gesucht und dann angesprungen.
Ist mehr für COM-Objekte gedacht, welche "dynamisch" aufgerufen werden, da wird halt erst zur Laufzeit in 'nem "unbekannten" Interface (IUnknown) die Methode gesucht.

(wenn ich das jetzt nicht komplett durcheinandergebracht hab, aber zumindestens Virtual ist richtig)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Aug 2016 um 22:18 Uhr)
  Mit Zitat antworten Zitat