A.2. Nombres de fichero

En C, es tradición nombrar a los ficheros de cabecera (que contienen las declaraciones) con una extensión .h y a los ficheros de implementación (que provocan que se reserve memoria y se genere código) con una extensión .c. C++ pasó por una evolución. Primero fue desarrollado en Unix, donde el sistema operativo distingue entre mayúsculas y minúsculas para nombres de ficheros. Los nombres originales eran simplemente las extensiones de C en mayúscula: .H y .C. Esto, por supuesto, no funcionaba en sistemas operativos que no distinguen entre mayúsculas y minúsculas como DOS. Los fabricantes de C++ para DOS usaban las extensiones hxx y cxx para los ficheros de cabecera y de implementación respectivamente, o hpp y cpp. Después, alguien se dio cuenta de que la única razón por la que se necesitaba una extensión diferente era que el compilador pudiera determinar si debía compilar el fichero como C o como C++. Como el compilador nunca compila ficheros de cabecera directamente, sólo había que cambiar la extensión de los ficheros de implementación. Ahora, en prácticamente todos los sistemas, la costumbre es usar cpp para los ficheros de implementación y .h para los ficheros de cabecera. Observe que cuando se incluye un fichero de cabecera del C++ Estándar, se usa la opción de no poner extensión al nombre del fichero, por ejemplo: #include <iostream>.