Header includen macht Probleme - falsches Design?



  • Hallo,

    ich bin anfänger in C++ und ich habe ein Problem mit meinen Headern und brauche Hilfe:

    Ich habe die main.cpp und jetzt 2 Klassen: Class1 und Class2.

    Sowohl Class1 als auch Class2 brauchen eine dritte Klasse Class3 die also über den Header included wird in Class1 und Class2.

    Jetzt braucht aber die main beide Klassen Class1 und Class2, was aber nicht geht weil der compiler mit "Redefinition of Class3" schreit...

    Was könnte ich machen? Bzw. wie sollte ich an die Sache rangehen?

    Danke



  • Includeguards könnten deine Freunde sein:

    #ifndef GUARD_CLASS1_H
    #define GUARD_CLASS1_H
    
    class class1
    {
    
    };
    
    #else
    
    // forward declaration
    class1;
    
    #endif
    


  • Such mal nach dem Stichwort "Include Guard" - die sind die ideale Lösung für deine Probleme.

    Edit @ anonymus: Den #else-Zweig kannst du übrigens weglassen 😉



  • Danke - genau das wars 🙂


Anmelden zum Antworten