Avatar ·

*.h o *.hpp para archivos de cabecera C++: ¿qué extensión elegir?

¡Hola a todos! Soy nuevo en C++ y estoy desarrollando mi primer proyecto pequeño: una clase para trabajar con matrices. He notado que en diferentes proyectos y tutoriales se usan distintas extensiones para los archivos de cabecera: unos escriben `matrix.h`, otros `matrix.hpp`. Me he confundido. Estoy acostumbrado a que en C todos los archivos de cabecera tengan la extensión `.h`. Pero C++ es un lenguaje separado, aunque basado en gran parte en C. Cuando escribo la definición de una clase, por ejemplo: ```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 ``` ...me parece lógico usar `.hpp` para indicar explícitamente que es C++, no C. Pero algunos colegas dicen que `.h` es el estándar y que `.hpp` solo confunde. Otros afirman que `.hpp` es una señal de código C++ "auténtico". Por favor, indíquenme qué extensión es más correcta usar en C++ moderno. ¿Hay alguna