Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Vorwärts-Deklaration
ShadowThief - So 28.09.03 12:45
Titel: Vorwärts-Deklaration
hallo,
ich mach grad eine unit, die zwei klassen beinhaltet, jetzt möchte ich die zweite klasse in der ersten klasse verwenden, das geht jedoch nicht, weil die zweite klasse ja weiter unten steht und sie deshalb in der ersten klase noch nicht bekannt ist.
ich könnte jetzt natürlich die beiden klassen vertauschen, dann würde es gehn. dies möchte ich jedoch nicht tun. gibt es eine andere lösung?
Moderiert von
Tino: Überflüssige Absätze entfernt.
ShadowThief - So 28.09.03 13:00
ich habs jetzt doch noch selbst gefunden. es geht folgendermaßen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| type TSecondClass = class; TFirstClass = class myobj: TSecondClass end; TSecondClass = class value: integer; end; |
ich bin deshalb nicht draufgekommen, weil ich es so probiert habe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type TSecondClass = class;
type TFirstClass = class myobj: TSecondClass end;
type TSecondClass = class value: integer; end; |
so funktioniert es jedoch nicht. man darf das type nur einmal schreiben.
shadow.
UC-Chewie - So 28.09.03 13:52
ShadowThief hat folgendes geschrieben: |
so funktioniert es jedoch nicht. man darf das type nur einmal schreiben. |
Nicht grundaätzlich. Du kannst beliebig viele Type-Abschnitte haben.
Dass es in diesem Fall nicht funktioniert, liegt wohl daran, dass die Prototyp-Deklartion und die eigentliche Deklaration von TSecondClass sich in zwei unterschiedlichen Blöcken befänden, was wohl nicht geht
Das ist ja genauso wie bei Typ-Referenzen:
Folgendes funktioniert:
Delphi-Quelltext
1: 2: 3: 4: 5:
| type PMyRecord = ^TMyRecord; TMyRecord = record sHelp: String[255]; end; |
Und folgendes nicht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| type PMyRecord = ^TMyRecord;
type TMyRecord = record sHelp: String[255]; end; |
ShadowThief - So 28.09.03 14:38
das hab ich gemeint, in diesem fall darf man es nur einmal schreiben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!