Wechelseitige Beziehungen von Klassen



  • Ich habe 2 Klassen:
    Element und Gruppe.

    In der Deklaration dieser Beiden Klassen kommt die jeweils andere Klasse vor.

    Allerdings kompiliert das ganze nicht, weil immer eine Klasse in der anderen nicht declariert ist.

    Wo liegt das Problem?


  • Mod

    Bengo schrieb:

    Wo liegt das Problem?

    Hast du doch selber beschrieben.

    Ist deine Frage vielleicht eher, wie du das Problem lösen kannst? Höchstens eine der Klassen kann ein Element der jeweils anderen Klasse enthalten (vermutlich enthält eine Gruppe Elemente, würde ich von den Namen her annehmen). Die andere Klasse kann ja höchstens irgendeine Art von Referenz auf die andere enthalten (Ein Element kennt sein Gruppe?). Falls dies nicht so ist, hast du einen Logikfehler in deinem Design. Für Referenzen brauchst du aber nicht die vollständige Definition einer Klasse, eine einfache Deklaration reicht aus.

    class Gruppe;
    
    class Element
    {
      Gruppe *gruppe;
    };
    
    class Gruppe
    {
      Element element;
    };
    


  • SeppJ schrieb:

    Hast du doch selber beschrieben.

    Ist deine Frage vielleicht eher, wie du das Problem lösen kannst?

    Hrhr. 😃 👍



  • Ok hab das gestern Abend zu schwamming formuliert.
    Ja ich möchte wissen, wie ich das Problem lösen kann 😃

    Element hat keine Eigenschaft von Gruppe (Wenn man Zeiger benutzt, müsste das aber auch gehen). Muss aber Gruppe als Parameter entgegennehmen können, mehr erst mal nicht.

    Hab es jetzt so zum kompilieren gebracht.

    In den Header Datein schreib ich class Element; bzw clsss Gruppe; davor.
    Und in den .cpp Datein includiere ich dann immer beide header-datein.
    kompiliern tut es schon mal.
    Kann man das so machen?


  • Mod

    Bengo schrieb:

    Kann man das so machen?

    Ja. Das ist wie man das normalerweise macht.


Log in to reply