Avatar ·

*.h ou *.hpp pour les fichiers d'en-tête C++ : quelle extension choisir ?

Bonjour à tous ! Je suis débutant en C++ et je développe mon premier petit projet — une classe pour travailler avec des matrices. J'ai remarqué que dans différents projets et tutoriels, différentes extensions sont utilisées pour les fichiers d'en-tête : certains écrivent `matrix.h`, d'autres `matrix.hpp`. J'ai une confusion. J'ai l'habitude qu'en C, tous les fichiers d'en-tête aient l'extension `.h`. Mais C++ est un langage séparé, bien que largement basé sur C. Quand j'écris une définition de classe, par exemple : ```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 ``` ...il me semble logique d'utiliser `.hpp` pour indiquer explicitement qu'il s'agit de C++, et non de C. Mais certains collègues disent que `.h` est la norme, et que `.hpp` ne fait que semer la confusion. D'autres affirment que `.hpp` est un signe de code C++ "authentique". Dites-moi, s'il vous plaît, quelle extension est la plus correcte à utiliser en C++ moderne ? Y a-t-il une règle ?