*.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 ?