
Typ A innerhalb Typ B verwenden, und umgekehrt ...
-
Blixa Barscheck -
11. Dezember 2006 um 14:02 -
Unerledigt
das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)
Vielen Dank für die Treue und das Verständnis!
-
-
du hast cyclic dependencies drin, das kann nicht funktionieren. du musst eine der beiden klassen in einem der beiden header forward deklarieren (z.b. mit class A;). google mal nach "forward declaration".
besser wäre es aber wahrscheinlich, dein design nochmal zu überdenken. in 95% aller fälle treten solche abhängigkeiten nicht auf.
-tiv
-
du hast cyclic dependencies drin, das kann nicht funktionieren. du musst eine der beiden klassen in einem der beiden header forward deklarieren (z.b. mit class A;). google mal nach "forward declaration".
Macht er aber in dem Fall eh - durch Einbindung der Headerdateien. Nur wenn A.h resp. B.h _nicht_ eingebunden werden sollen, muss man "class X" forward deklarieren.Wie immer bitte ich um ein vollständiges Programm, da mir zumindest auf den ersten Blick in der main() Funktion gleich mal Dinge auffallen, die sicher nicht compilieren können.
Und die Fehlermeldung wäre auch interessant!
-
Macht er aber in dem Fall eh - durch Einbindung der Headerdateien. Nur wenn A.h resp. B.h _nicht_ eingebunden werden sollen, muss man "class X" forward deklarieren.
Die Einbindung ändert nichts daran, daß es zyklische Abhängigkeiten zwischen den Klassen gibt. Die Deklaration von B kommt vor jeglicher Deklaration von A, also gibts bei der Deklaration "A* a;" einen Fehler.ZitatUnd die Fehlermeldung wäre auch interessant!
g++ liefert da, wie leider oft bei unbekannten Typen, nur einen syntax error ohne nähere Details. -
-
Maximilian Rupp
27. Dezember 2024 um 12:05 Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.