AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Methodenhierarchie in der Vererbung umgehen/überspringen
Thema durchsuchen
Ansicht
Themen-Optionen

Methodenhierarchie in der Vererbung umgehen/überspringen

Ein Thema von scouty · begonnen am 10. Jan 2004 · letzter Beitrag vom 13. Jan 2004
 
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#4

Re: Methodenhierarchie in der Vererbung umgehen/überspringen

  Alt 12. Jan 2004, 13:02
Das liegt daran, das Dein Objekt nunmal ein TC ist, und die Methode überschrieben wurde.

Das hat zur Folge, daß an der Speicheradresse der Methode Method() nunmal der Codeblock von TC liegt, bzw. ein Pointer dahin. Wenn Du nun einen Typecast auf TC als TA machst, geht der Compiler hin, und guckt nach, an welcher Speicheradresse von dem Objekt nun der Pointer zur Methode Method() liegt. Die Position der Adresse ist bei TA und TC identisch, und durch den TypeCast wird der WERT des Pointers eben nicht verändert: Er zeigt weiterhin auf die implementierung von TC.

Deswegen ist der Umweg den Hagen aufgezeigt hat leider unumgänglich. Du musst über @TA.Method den Codeblock der Implementierung von TA herausfinden.

Zur Verdeutlichung vergleiche mal folgende Werte:
@TC.Method;
@(TA(self)).Method;
@TA.Method;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz