#include Problem



  • hi

    ich habe ein kleines programm wo ich öfters die gleichen header dateien einbinden muss. deswegen habe ich mir eine header datei gemacht wo ich alle anderen einbinde.

    aber das geht natürlich nicht. wegen den include-guards.

    wie macht ihr das in euren projekten? gibt es da eine möglichkeit?

    also so

    //includes.hpp
    #include <iostream>
    #include <cstddef>
    #include <string>
    #include <vector>
    #include <fstream>
    #include "classA.hpp"
    #include "classB.hpp"
    #include "classC.hpp"
    

    der compiler gibt dann die fehlermeldung dass A (Das ist eine klasse) nicht deklariert wurde.

    danke für eure antworten



  • Wo ist das Problem? Include-Guards verhindern doch nur eine Mehrfacheinbindung.



  • Das muss gehen allerdings werden damit getrennte Deklaration und Definition überflüssig.



  • So Mega-Header verwende ich nie. Im Gegenteil. Je weniger Header ich inkludiere, deste schneller rennt der Compiler.

    Dir dürfte schon geholfen sein, wenn Du den Mega-Header nur in *.cpp, aber nicht in *.hpp inkludierst.

    Andere Auflösungen von Zyklen erfordern, daß man konkret auf die Klassen eingeht und hier und da ein wenig schubst. Zum Beispiel meistens den Mega-header nach der eigenen Klasse inkludieren oder vor dem eigenen Include-Guard mit Mega-Includeguard in jedem normalen Header. Oder oder oder...



  • hmm okay ich versuchs
    ein include-guard brauch ich doch für den megaheader nicht oder?



  • hilfe hilfe schrieb:

    hmm okay ich versuchs
    ein include-guard brauch ich doch für den megaheader nicht oder?

    Mach es doch einfach überall... Meine IDE macht, beim erstellen einer .h Datei, dass sowieso schon automatisch.


Anmelden zum Antworten