Avatar ·

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