#include Problem



  • Hallo...

    Ich hab ein Problem:

    Ich habe eine Header-Datei der Klasse A, die auf jene von B verweißt...

    Die Klasse B muss allerdings auch auf die Klasse A verweisen...

    Das compiliert er mir aber dann nicht mehr...

    Krieg ich das nur hin, indem ich eine Variable per #define deklariere
    und nur includiere, wenn diese noch nicht gesetzt wurde oder irgendwie auch einfacher?

    Gruß,
    CSpille



  • Morgen,

    du benoetigst sogenannte include-guards.

    #ifndef myheaderH
    #define myheaderH
    
    //code
    
    #endif
    

    mfg
    v R



  • zu spät 😡



  • virtuell Realisticer schrieb:

    Morgen,
    du benoetigst sogenannte include-guards.

    Dann wird er das Problem trotzdem haben, also schätze ich mal das er schon einen include-Guard benutzt.

    Kreuz-Includierung ist nämlich nicht möglich!

    Ein Forward-declaration ist nämlich noch zusätzlich nötig:

    class B;
    
    class A
    {
    
        B* b;
    };
    
    class A;
    
    class B
    {
    
        A* a;
    };
    

    Bei Refrencen wird es aber schon schwieriger, da hilft auch ein Forwarding nichts.



  • genau @ artchi.

    schreibe in die beiden headerfiles jeweils vor die Klassendefinition einfach ein ´

    class A;
    

    bzw.

    class B;
    

    .

    Dadurch machst du die Klassen bekannt. In den cpp-files inkludierst du ganz normal die headerfiles


Anmelden zum Antworten