*.h ou *.hpp para arquivos de cabeçalho C++: qual extensão escolher?
Olá a todos! Sou novo em C++ e estou desenvolvendo meu primeiro pequeno projeto — uma classe para trabalhar com matrizes. Notei que em diferentes projetos e tutoriais são usadas extensões diferentes para arquivos de cabeçalho: uns escrevem `matrix.h`, outros `matrix.hpp`. Fiquei confuso.
Estou acostumado que em C todos os arquivos de cabeçalho têm a extensão `.h`. Mas C++ é uma linguagem separada, embora em grande parte baseada em C. Quando escrevo a definição de uma classe, por exemplo:
```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
```
...parece-me lógico usar `.hpp` para indicar explicitamente que é C++, e não C. Mas alguns colegas dizem que `.h` é o padrão, e `.hpp` só confunde. Outros afirmam que `.hpp` é um sinal de código C++ "de verdade".
Por favor, digam-me qual extensão é mais correta de usar no C++ moderno? Existe alguma