Einzelnen Beitrag anzeigen

Looper

Registriert seit: 28. Sep 2007
Ort: Hamburg
131 Beiträge
 
Delphi XE2 Professional
 
#1

typisierten Pointer abgeleiteter Klasse Basisklasse zuweisen

  Alt 4. Feb 2010, 19:34
Guten abend,
ich bin gerade ein bischen ratlos bei meinem kleinen Schulprojekt. Und zwar möchte ich eine einfach verkettete Liste darstellen und versuche gerade C++ Quellcode aus einem Buch zu übersetzen. Und nun zum Problem:

Es gibt die Klassen Knoten (Basisklasse), Anfangsknoten(abgeleitet), und Endknoten(auch abgeleitet von Basisklasse). nun steht im C++ Code folgendes
Code:
Knoten* next;
[...]
next = new Endknoten;
Wenn ich das 1 zu 1 in Delphi übertrage, kommt es unweigerlich zu einer Fehlermeldung schon zur Entwurfszeit. Ich habe das so umgeschrieben:
Delphi-Quellcode:
Next : PKnoten;
[...]
Next := PKnoten(New(PEndKnoten));
Next^ := TEndKnoten.Create(LB);
Das einzige was ich mir vorstellen könnte ist, dass ich New als Parameter nicht dem Pointertyp, sondern den Klassentyp (TEndKnoten) übergebe, aber von der Größe tut sich da sowieso nix sizeof(PEndKnoten)=sizeof(TEndKnoten)...

Meine erste Frage ist, ob meine Delphilösung fehlerhaft ist. Denn zur Laufzeit kommen typische Fehlerzugriffe-Meldungen...

Schönen abend noch, Grüße Janek
  Mit Zitat antworten Zitat