AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was macht der Typecast Pointer()?

Ein Thema von s.h.a.r.k · begonnen am 31. Dez 2009 · letzter Beitrag vom 2. Jan 2010
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

Re: Was macht der Typecast Pointer()?

  Alt 31. Dez 2009, 17:37
Zitat von s.h.a.r.k:
Es kommt doch aber nix sinnvolles dabei raus, wenn ich das auf einen Integer anwende. Ich bekomme dann doch einen Pointer der halt irgendwo hin zeigt.
Kommt halt darauf an, was in dem Integer steht. Du kannst z.B. auch sowas machen:
Delphi-Quellcode:
var
  Pointer1, Pointer2: Pointer;

...

  Pointer2 := Pointer( Integer(Pointer1) + 5 ); // 5 Bytes hinter Pointer 1
Zitat von s.h.a.r.k:
Wie sieht das dann bei der Anwendung auf eine Klasse aus?
Du meinst wohl ein Objekt, keine Klasse. Ein Objekt ist intern selbst auch nichst anderes als ein Pointer - deswegen klappt die Umwandlung hier problemlos. Aus dem gleichen Grund kannst du z.B. auch Objekte in den Data-Eigenschaften vieler List-/TreeView-Komponenten unterbringen.
Und eine Methode (TMethod) ist nun mal als Record so aufgebaut, dass eine Referenz (Pointer) auf das Objekt und die Adresse der Funktion gespeichert wird. Die Referenz wird benötigt, weil jede Methode einen unsichtbaren ersten Parameter self hat - der ist nötig, damit du auf die Felder des jeweiligen aufrufenden Objekts zugreifen kannst.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:43 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