2 Klassen dir sich brauchen.



  • Hi,

    stellt euch vor ihr wollte 2 Klassen programmieren die gegenseitig aufeinader Zugreifen? Wie würdet ihr das machen? Das Problem ist wenn ich in die Header die Definition und die .cpp Datei die Deklaration schreibe, der Quelltext nicht mehr kompiliert.



  • Hallo

    Stichwort Forward Declaration

    bis bald
    akari



  • Mache ich bereits.

    Hier mal das Problem:

    class1.h

    #include "class2.h"
    
    class class1 {
    
    private:
    class2 klasse2;
    
    }
    

    class2.h

    #include "class1.h"
    
    class class2 {
    
    private:
    class1 klasse1;
    
    }
    


  • Hallo

    du kannst nicht zwei Header sich gegenseitig includen lassen.
    Du must dein Design umstellen, so das du z.B. nur aus Header1 den Header2 includest, und aus Implementaion2 Header1.

    Oder du lagerst die Teile, die beide Klassen brauchen in eine dritte unabhängige aus, die dann von beiden includet und verwendet wird. Zum Beispiel als Basisklasse.

    bis bald
    akari



  • Was du da machen willst geht überhaupt nicht. Überleg mal wie gross deine Klasse wird.
    class1 enthält ein class2 das ein class1 enthält das ein class2 enthält das ein class1 enthält ......
    Geht nur mit Zeigern oder Referenzen.
    Kurt


Anmelden zum Antworten