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 generan alojamiento en memoria y código) con una extensión .c. C++ supuso 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 para los ficheros simplemente se pusieron 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 vendedores de C++ para DOS usaban extensiones hxx y cxx, o hpp y cpp. Después, alguien se dio cuenta que la única razón por la que se puede necesitar un extensión diferente es que el compilador no puede determinar si debe compilarlo como C o C++. Como el compilador nunca compila ficheros de cabecera directamente, sólo el fichero de implementación necesita una distinció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. Fíjese que cuando se incluye un fichero de cabecera C++, se usa la opción de no poner extensión al nombre del fichero, por ejemplo: #include <iostream>