Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#10

Re: Warum läßt Delphi das zu: Pointertyp(pBla).Member???

  Alt 16. Aug 2005, 10:26
Zitat von Luckie:
Die explizite Dereferenzieruzng hat eiegntlich den Vorteil, dass man genau sieht, wann man es mit einem Zeiger zu tun hat und, wann nicht. Gerade bei Delphi Anfängern führt das zu Verständnisproblemen, denke ich.
Eben!

Zitat von Luckie:
Übrigens gerade probiert:
[...]
Weil jbg hier die interne Verwaltung damit verwechselt, daß nach außen Objekte sowas wie Records sind und nur intern über ihren Zeiger verwaltet werden.

Zitat von negaH:
Die explizite Dereferenzierung ist also nur ein unnötig störendes Element in einem Source der inhaltlich keinerlei Mehrinformation zum Verständnis in diesem Moment der Quellttextzeile bietet. Dafür sind ja die separaten Typdeklartionen zuständig.
Es dürfte aber Fälle geben, wo dies zu Problemen führt, wenn nicht ein expliziter Cast angefügt wird. Und dann ist's egal ob ich einen Cast oder lieber eine Dereferenzierung nehme.

Aber Gegenfrage: Warum gibt's das überhaupt, wenn ich es doch auch ohne ^ schreiben kann?

Zitat von negaH:
Und, falls du dich entschließen solltes eines Tages deinen Pointer auf Record in einen Record im Stack oder in eine Klasse zu verwandeln, dann ist die neue Schreibweise kompatibel ohne Änderungen !
Wohl wahr ... das wäre ein Vorteil.

Zitat von negaH:
Übrigens, in Assembler kennt man syntaktisch diesen Unterschied ebenfalls nicht.
... gib mal ein Beispiel. Das wäre mir total neu. Daß der BASM diverse Syntaxschweinereien zuläßt, ist mir bekannt ... in anderen Assemblern kannst du vieles aber nicht so machen!

Zitat von Robert_G:
Sorry Ollie, aber wie hässlich wäre Code, wenn ich jede Objektinstanz erst dereferenzieren müsste?
Wußte garnicht, daß du *nur* mit Objektpointern arbeitest ...

Zitat von Robert_G:
Das ist doch geradezu widerlich...
Typensicherheit heißt für mich, dass eine Instsnz von TSomeType auch wirklich das ist, was sie mir vorgaukelt.
Gerade hier bringst du doch ein Beispiel mit einem Objektpointer. Und Pointer sind nunmal nix weiter als Zahlen ...

Zitat von Robert Marquardt:
Besonders fuer Member einer Klasse, da eine Klassenreferenz formal kein Zeiger ist.
Die Klassenreferenz ist nur als Zeiger implementiert.
Hört auf Robert! Der hat (fast <- sorry!) immer recht.
  Mit Zitat antworten Zitat