[GELÖST] Import-Kreuzbeziehungen?
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
CO2ehemals "SirMO"Betreff: [GELÖST] Import-Kreuzbeziehungen? |
Di, Jan 17, 2017 21:14 Antworten mit Zitat |
|
---|---|---|
Hallo,
ich schon wieder Ich stehe aktuell vor dem Problem, dass ich eine Kreuzbeziehung zwischen zwei Klassen in zwei Dateien habe. Meine Struktur sieht in etwa wie folgt aus: Type TA (Datei "a.bmx")-BlitzMax: [AUSKLAPPEN] Type TA Type TB (Datei "b.bmx")-BlitzMax: [AUSKLAPPEN] Type TB Importiere ich die Dateien untereinander, entsteht eine Kreuzbeziehung, die der Compiler nicht auflösen kann. Includeiere ich einer der beiden Dateien in der anderen funktioniert es prächtig. Bei der zweiten Möglichkeit habe ich jedoch das Problem, dass die Teilklassen (im obigen Falle TA und TB) jeweils noch weitere Sachen importieren, die auch an anderen Stellen benötigt werden (der Aufwand wäre zu groß, für jeden dieser Imports zu ermitteln, wo er zuerst benötigt wird und dort ein Include zu machen) Meine Frage ist nun: Kann ich dieses Problem ohne die Nutzung von Include lösen? Oder ist das eine Eigenheit des BlitzMax-Compilers? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am Di, Jan 17, 2017 21:35, insgesamt einmal bearbeitet
BladeRunnerModerator |
Di, Jan 17, 2017 21:18 Antworten mit Zitat |
|
---|---|---|
In der Regel weisen solche Kreisreferenzen auf Fehler im Codedesign hin, da hakt es mit der sauberen Kapselung. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
CO2ehemals "SirMO" |
Di, Jan 17, 2017 21:20 Antworten mit Zitat |
|
---|---|---|
Ok, also nur mit Import ist keine Lösung zu finden?
Edit: Grundsätzlich wäre eine Lösung mit Include kein Problem, dann würde ich halt einfach die eine Datei bei der anderen Includen. Dann ist aber das Problem, dass meine Imports in der includeten Datei nicht mehr kompilierbar sind, da "sie am Anfang der Datei stehen müssen"... Edit 2: Es hat sich gerade erledigt. Hier nochmal die Problemlösung in Pseudo-Code (hat nichts mit dem Beispiel im ersten Post zu tun) Datei "abschild.bmx" BlitzMax: [AUSKLAPPEN] Type TAbsChild Abstract Datei "absparent.bmx" BlitzMax: [AUSKLAPPEN] Include "abschild.bmx" Datei "child1.bmx" BlitzMax: [AUSKLAPPEN] Import "absparent.bmx" Datei "parent.bmx" BlitzMax: [AUSKLAPPEN] Import "absparent.bmx" Und nun würde an einer anderen Stelle im Code einfach eine Variable vom Typ TParent erzeugt, mit der z.B. eine Datei geparsed werden kann. |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group