Basisklasse ist undefiniert



  • Hi, hi

    ich habe mal wieder ein Problem 🙂 : 'A': Basisklasse ist undefiniert
    Ich habe es gestern schon versucht zu lösen, habe aber nichts gefunden. Ich weiß auch gar nicht genau wo der Fehler liegen könnte ich habe mir aber mal gedacht, dass es möglicherweise an diesem komischen "include-Kreislauf" liegen könnte...

    // A.h ////////////////
    #include "B.h"
    
    class A
    {
    private:
        B *b;
        // ...
    };
    ///////////////////////
    
    // B.h ////////////////
    #include "C.h"
    
    class B
    {
    private:
        C* c;
        // ...
    };
    ///////////////////////
    
    // C.h ////////////////
    #include "A.h"
    
    class C : public A
    {
    private:
        // ...
    };
    ///////////////////////
    


  • // A.h ////////////////
    #ifndef A_H
    #define A_H
    
    class B; //forward-deklaration reicht, weil ich nur nen zeiger drauf habe
    
    class A
    {
    private:
        B *b;
        // ...
    };
    
    #include "B.h" //sei nett zu anwendern der "A.h"
    #endif
    ///////////////////////
    
    // B.h ////////////////
    #ifndef B_H
    #define B_H
    
    class C;
    
    class B
    {
    private:
        C* c;
        // ...
    };
    
    #include "C.h"
    
    #endif
    ///////////////////////
    
    // C.h ////////////////
    #ifndef C_H
    #define C_H
    
    #include "A.h"
    
    class C : public A
    {
    private:
        // ...
    };
    #endif
    ///////////////////////
    


  • Ups, ich habe hier ganz vergessen ifndef A_h usw. rein zuschreiben :).

    Danke, es funktioniert. (*freu* Und ich verstehe das ganze sogar super gut, danke)


Anmelden zum Antworten