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