Wieso brauchst du Pointer? Ein Objekt in Delphi ist bereits eine Referenz, also nichts anderes als ein Pointer auf den Bereich wo die Daten des Objektes liegen! Wieso brauchst du jetzt also einen Pointer auf einen Pointer? Ist das nicht etwas "doppltgemoppelt"?
Zu den Forwarddeklarationen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type TClass1 = class; TClass2 = class;
TClass1 = class aClass2Object: TClass2; end;
TClass2 = class aClass1Object: TClass1; end; |
Eine Forwarddeklaration ist nichts anderes als ein abschließendes Semikolon (";") nach dem reservierten Wort "class", sonst nichts! Durch diese Forwarddeklaration weiß Delphi, dass es sich bei TClass1 und TClass2 um Klassen handelt und dass ihre eigentliche Klassendeklaration erst folgt. Aber dadurch, dass der Compiler bereits weiß dass es sich um Klassen handelt können diese im Interface bereits vor der eigentlichen Klassendeklaration verwendet werden.