h hpp hxx...



  • Warum verwendet man eigentlich verschiedene extensions für header dateien?



  • Reine Konvention.
    Die einen möchten .h haben und die anderen .hpp. Wahrscheinlich um damit zu sagen, dass das C++ und kein C Header ist.



  • Ich nehme .h wenn ich eine Klasse deklariere, die ich in einer anderen .cpp Datei seperat implementiere.
    Wenn die Implementierung in der Klassendefinition steht, nehm ich .hpp, also einem Mix aus h und cpp.



  • Max3000 schrieb:

    Ich nehme .h wenn ich eine Klasse deklariere, die ich in einer anderen .cpp Datei seperat implementiere.
    Wenn die Implementierung in der Klassendefinition steht, nehm ich .hpp, also einem Mix aus h und cpp.

    Ist ja besonders nervig, dann musst du ja die Implementierung kennen um zu wissen wie du die Library jetzt einbindest. Findest du das gut?

    Edit: Mischt du das dann tatsächlich auch innerhalb einer Bibliothek?

    MfG SideWinder



  • SideWinder schrieb:

    Edit: Mischt du das dann tatsächlich auch innerhalb einer Bibliothek?

    Wenn ich das so handhaben würde, würde mir, um die Konsistenz zu wahren, spontan einfallen, jeweils zwei Versionen zu schreiben, die sich dann so- oder sorum inkludieren:

    // myclass.hpp
    // MyClass + Implementierung
    ...
    
    // myclass.h
    #include "myclass.hpp"
    

    So könnte der User der Bibliothek doch immer die .h-Header einbinden, ohne sich Gedanken darüber zu machen, ob nun die Implementierung mitgeladen wird oder nicht...



  • Ich verwende .hpp um sie von C-Headern deutlich zu unterscheiden, so wie es auch der Autor meines Buches Die C++ Programmiersprache B.Stroustrup macht.



  • Ich verwende .h, weil es *H*eader-Dateien sind, keine Header-Plus-Plus-Dateien.



  • BadWolf schrieb:

    Ich verwende .h, weil es *H*eader-Dateien sind, keine Header-Plus-Plus-Dateien.

    Wie nennst du dann deine Implementierungsdateien? Weil ".cpp" drückt den Unterschied zwischen "C++ Header" und "C++ Implementierungsdatei" nicht korrekt aus - dein "H"eader enthält ja auch C++-Code :p


Anmelden zum Antworten