Gibt es eine Möglichkeit, ähnlich wie die forward-Deklaration bei Prozeduren, dasselbe auch bei objects? Bei Klassen scheint es ja zu genügen, einfach anzugeben Type Tmyclass = Class; und dann weiter unten erst die Definitionen zu bringen. Aber bei Objects bekomme ich da gleich eine Fehlermeldung.
Herzlichen Dank
P. Nikolaus
Forward Deklaration von Objects?
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Forward Deklaration von Objects?
ka.
Ich bekomme ne Dublicate identifer Meldung. Schein so als ob fpc das nicht als Forward deklaration sondern als Deklaration an sich versteht.
Ich bekomme ne Dublicate identifer Meldung. Schein so als ob fpc das
Code: Alles auswählen
test = object;
Code: Alles auswählen
Signatur := nil;
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Forward Deklaration von Objects?
In welchem Fall brauchst du denn eine Forward-Deklaration? In der Regel wirst du ein Objekt doch durch ein Zeiger in einer anderen Struktur referenzieren wollen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 116
- Registriert: Di 21. Dez 2010, 09:59
- OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
- CPU-Target: 32 Bit
Re: Forward Deklaration von Objects?
Ich weiß nicht, ob das geht. Bei Klassen ist das ja einfach, weil der Compiler beim Anlegen sowieso den Platz für einen (bzw. 2) Zeiger reservieren muss. Er müsste also deswegen nicht zweimal laufen. Wenn Du irgendeinen anderen Typen forward deklarierst, dann weiß der Kompiler beim ersten Auftreten ja noch nicht, wieviel Platz er für das Ding reservieren muß.
Ist sicher machbar, aber ist es gemacht?
Ist sicher machbar, aber ist es gemacht?
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Forward Deklaration von Objects?
Ich glaube nicht das das mit TP Objekte kann. Aber man kann, ähnlich wie bei Records, ein Zeiger nach dem Objekt Typ forward Deklarieren.
Also etwa
Aber ich würde Classes nutzen, und nicht TP Objecten
Also etwa
Code: Alles auswählen
Type
PObjectB = ^TOBjectB;
TObjectA = object
refb : POBjectB:
end;
TObjectB= object
... etwas mit A
end;
-
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Forward Deklaration von Objects?
Ich würd' auch eher class verwenden als object, heutzutage. Aber wenn's object sein muß, würde ich's machen wie oben beschrieben. Meine Güte, ich hab's Jahre lang getan, als ich noch in BP7 gecodet habe ...
Ceterum censeo computatores per Pascal docendos esse.