Avatar ·

*.h oder *.hpp für C++-Header-Dateien: Welche Erweiterung wählen?

Hallo zusammen! Ich bin neu in C++ und entwickle mein erstes kleines Projekt – eine Klasse für die Arbeit mit Matrizen. Mir ist aufgefallen, dass in verschiedenen Projekten und Lehrbüchern unterschiedliche Erweiterungen für Header-Dateien verwendet werden: Manche schreiben `matrix.h`, andere `matrix.hpp`. Das hat mich verwirrt. Ich bin es gewohnt, dass in C alle Header-Dateien die Erweiterung `.h` haben. Aber C++ ist eine eigene Sprache, auch wenn sie weitgehend auf C basiert. Wenn ich eine Klassendefinition schreibe, zum Beispiel: ```cpp // matrix.h #ifndef MATRIX_H #define MATRIX_H class Matrix { public: Matrix(int rows, int cols); void print() const; private: int rows_, cols_; double* data_; }; #endif ``` ...erscheint es mir logisch, `.hpp` zu verwenden, um explizit darauf hinzuweisen, dass es sich um C++ und nicht um C handelt. Aber einige Kollegen sagen, dass `.h` der Standard ist und `.hpp` nur verwirrt. Andere behaupten, dass `.hpp` ein Zeichen für "echten" C++-Code ist. Bitte sagt mir, welche Erweiterung im modernen C++ korrekter ist. Gibt es eine offizielle Empfehlung?