2 mal includieren?



  • Erhard Henkes schrieb:

    Nur in der header-Datei.

    danke, und wenn ich etwas nur in der .cpp benötige auch nur in der Header dann oder?



  • In einer Headerdatei solltest du Grundsätzlich keine weiteren Headerdatein benötigen, da du dort ja nur Prototypen bzw. Klassendeklarationen hineinschreibst. Die Definition der Elementfunktionen deiner Klasse schreibst du dann ja in deine .cpp Datei.



  • Wenn Du etwas nur in der cpp-Datei benötigst, dann includierst Du es dort und nicht in der header-Datei.



  • danke



  • In einer Headerdatei solltest du Grundsätzlich keine weiteren Headerdatein benötigen

    Das lässt sich aber nicht allgemein durchhalten. Wenn Du beispielsweise spezielle Parametertypen übergeben musst.



  • Erhard Henkes schrieb:

    In einer Headerdatei solltest du Grundsätzlich keine weiteren Headerdatein benötigen

    Das lässt sich aber nicht allgemein durchhalten. Wenn Du beispielsweise spezielle Parametertypen übergeben musst.

    Gewiss ist das nicht immer möglich. Häufig läßt es sich aber durch ein besseres Konzept vermeiden.



  • Also ich weiß nicht recht. Man muss sich doch nur die Header von C++ selbst anschauen.



  • Erhard Henkes schrieb:

    Also ich weiß nicht recht. Man muss sich doch nur die Header von C++ selbst anschauen.

    1. Ist vector nur ein "sammel"-Header, der nur einen Haufen weitere Header included (zumindest in meiner implementation, die sind ja auch verschieden von compiler zu compiler)
    2. ist std::vector ein klassentemplate, und bei templates ist ja bekannt dass da eh ALLES mehr oder weniger direkt in den Header geschrieben wird.
      Bei <ios> ists ähnlich...

    Berufspenner schrieb:

    In einer Headerdatei solltest du Grundsätzlich keine weiteren Headerdatein benötigen, da du dort ja nur Prototypen bzw. Klassendeklarationen hineinschreibst. Die Definition der Elementfunktionen deiner Klasse schreibst du dann ja in deine .cpp Datei.

    Ist trotzdem nicht ganz richtig, da zu einer Klassendefinition auf jeden Fall sämtliche geerbte Klassen sowie die der Klassenmember vollständig bekannt sein müssen (gilt nicht für Pointer).



  • Erhard Henkes schrieb:

    Wenn Du etwas nur in der cpp-Datei benötigst, dann includierst Du es dort und nicht in der header-Datei.

    es wäre aber der übersicht besser, wenn man schon einen header in der cpp hinzufügt, das es dann nur der eine header zur cpp ist. und in diesem header werden alle weiteren header hinzugefügt die benötigt werden. dadurch sind alle header die hinzugefügt werden an einem ort zu finden anstatt in jeder cpp/h datei.


  • Administrator

    sahnelutscher schrieb:

    es wäre aber der übersicht besser, wenn man schon einen header in der cpp hinzufügt, das es dann nur der eine header zur cpp ist. und in diesem header werden alle weiteren header hinzugefügt die benötigt werden. dadurch sind alle header die hinzugefügt werden an einem ort zu finden anstatt in jeder cpp/h datei.

    Habe ich dich richtig verstanden und du behauptest, dass man besser gleich alle abhängigen Header in dem zur *.cpp zugehörigen Header inkludieren soll? Das mag für kleinere Projekte gehen, für grössere ist es undenkbar! Da geht die Compilezeit ins wahnsinnige hoch.

    Grüssli


Anmelden zum Antworten