Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 44 — #82<br />
✐<br />
Capítulo 2. Construir y usar objetos<br />
becera. Un fichero de cabecera es un fichero que conti<strong>en</strong>e las declaraciones externas<br />
de una librería; conv<strong>en</strong>cionalm<strong>en</strong>te ti<strong>en</strong>e un nombre de fichero con ext<strong>en</strong>sión .h,<br />
como headerfile.h (no es difícil <strong>en</strong>contrar código más antiguo con ext<strong>en</strong>siones<br />
difer<strong>en</strong>tes, como .hxx o .hpp, pero es cada vez más raro).<br />
El programador que crea la librería proporciona el fichero de cabecera. Para declarar<br />
las funciones y variables externas de la librería, el usuario simplem<strong>en</strong>te incluye<br />
el fichero de cabecera. Para ello se utiliza la directiva de preprocesado #include.<br />
Eso le dice al preprocesador que abra el fichero de cabecera indicado e incluya el cont<strong>en</strong>ido<br />
<strong>en</strong> el lugar donde se <strong>en</strong>cu<strong>en</strong>tra la s<strong>en</strong>t<strong>en</strong>cia #include. Un #include puede<br />
indicar un fichero de dos maneras: mediante paréntesis angulares ( < > ) o comillas<br />
dobles.<br />
Los ficheros <strong>en</strong>tre paréntesis angulares, como:<br />
#include <br />
hac<strong>en</strong> que el preprocesador busque el fichero como si fuera particular a un proyecto,<br />
aunque normalm<strong>en</strong>te hay un camino de búsqueda que se especifica <strong>en</strong> el<br />
<strong>en</strong>torno o <strong>en</strong> la línea de comandos del compilador. El mecanismo para cambiar el<br />
camino de búsqueda (o ruta) varía <strong>en</strong>tre maquinas, sistemas operativos, e implem<strong>en</strong>taciones<br />
de <strong>C++</strong> y puede que requiera un poco de investigación por parte del<br />
programador.<br />
Los ficheros <strong>en</strong>tre comillas dobles, como:<br />
#include "header"<br />
le dic<strong>en</strong> al preprocesador que busque el fichero <strong>en</strong> (de acuerdo a la especificación)<br />
«un medio de definición de implem<strong>en</strong>tación», que normalm<strong>en</strong>te significa buscar el<br />
fichero de forma relativa al directorio actual. Si no lo <strong>en</strong>cu<strong>en</strong>tra, <strong>en</strong>tonces la directiva<br />
se preprocesada como si tuviera paréntesis angulares <strong>en</strong> lugar de comillas.<br />
Para incluir el fichero de cabecera iostream, hay que escribir:<br />
#include <br />
El preprocesador <strong>en</strong>contrará el fichero de cabecera iostream (a m<strong>en</strong>udo <strong>en</strong> un<br />
subdirectorio llamado «include») y lo incluirá.<br />
Formato de inclusión del estándar <strong>C++</strong><br />
A medida que <strong>C++</strong> evolucionaba, los difer<strong>en</strong>tes fabricantes de compiladores elegían<br />
difer<strong>en</strong>tes ext<strong>en</strong>siones para los nombres de ficheros. Además, cada sistema operativo<br />
ti<strong>en</strong>e sus propias restricciones para los nombres de ficheros, <strong>en</strong> particular la<br />
longitud. Estas características crearon problemas de portabilidad del código fu<strong>en</strong>te.<br />
Para limar estos problemas, el estándar usa un formato que permite los nombres de<br />
ficheros más largos que los famosos ocho caracteres y permite eliminar la ext<strong>en</strong>sión.<br />
Por ejemplo <strong>en</strong> vez de escribir iostream.h <strong>en</strong> el estilo antiguo, que se asemejaría a<br />
algo así:<br />
#include <br />
ahora se puede escribir:<br />
44<br />
✐<br />
✐<br />
✐<br />
✐