Richtiges Includen



  • Hey,
    ich bekomme meist den Fehler "...@@bla@@A) ist bereits in main.obj definiert.",
    wenn ich Funktionen/Strukturen/vars etc. in Header Dateien von includes deklariere...
    Wie include ich richtige?
    Mein System bis jetzt :

    -> andere.h <- andere.cpp
    main.cpp -> main.h -> andere2.h <- andere2.cpp
                       -> andere2.h <- andere3.cpp
    

    Ich möchte das main.cpp auf alle anderen Funktionen etc der Includes zugreifen kann.
    Das funktioniert an sich wär da nicht ab und zu dieser Fehler..
    Ich habe in anderen Source Codes gesehen, dass bei den Includes mit #ifdefine,#endif gearbeitet wird aber für was ist das genau?
    Bzw wie included man richtig?
    Wäre echt nett, wenn mich da einer Aufklären könnte! 👍



  • Ich habe in anderen Source Codes gesehen, dass bei den Includes mit #ifdefine,#endif gearbeitet wird aber für was ist das genau?

    Google: include guard



  • du musst ganz einfach am beginn jeder header-datei

    #pragma once
    

    schreiben.



  • #pragma once gehört aber nicht zum standard, ist also nicht in allen compilern vorhanden. außerdem kann #pragma once probleme machen, wenn man sowas hat:

    foo.h:

    #pragma once
    
    class foo{ ... };
    

    myotherfooimpl.h:

    #pragma once
    
    class foo{ ... };
    


  • [ schmaler ] [ breiter ] schrieb:

    Ich habe in anderen Source Codes gesehen, dass bei den Includes mit #ifdefine,#endif gearbeitet wird aber für was ist das genau?

    Google: include guard

    Danke ich werds mir mal anschauen

    thordk schrieb:

    #pragma once gehört aber nicht zum standard, ist also nicht in allen compilern vorhanden. außerdem kann #pragma once probleme machen, wenn man sowas hat:

    foo.h:

    #pragma once
    
    class foo{ ... };
    

    myotherfooimpl.h:

    #pragma once
    
    class foo{ ... };
    

    #pragme once hab ich eben bis jetzt immer benutzt aber dann bei Klassendeklarationen und vars gabs dann immer diesen Fehler


Anmelden zum Antworten