Typ A innerhalb Typ B verwenden, und umgekehrt ...

  • SO funktioniert es schon einmal nicht:

    "Von der Gewalt, die alle Wesen bindet, befreit der Mensch sich, der sich überwindet." > Learn more ...

  • 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

    Stefan Reinalter
    Lead Programmer @ Sproing Interactive

  • 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!

    Dipper dipper dii dipper dii dipper dii duuu

  • 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.

    Zitat

    Und die Fehlermeldung wäre auch interessant!


    g++ liefert da, wie leider oft bei unbekannten Typen, nur einen syntax error ohne nähere Details.

    *plantsch*

  • du musst eine der beiden klassen in einem der beiden header forward deklarieren (z.b. mit class A;). google mal nach "forward declaration".


    Fuktioniert!
    thx!

    "Von der Gewalt, die alle Wesen bindet, befreit der Mensch sich, der sich überwindet." > Learn more ...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!