Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 40 — #78<br />
✐<br />
Capítulo 2. Construir y usar objetos<br />
<strong>en</strong> un único fichero. Una librería se crea y manti<strong>en</strong>e por un programa conocido como<br />
bibliotecario (librarian).<br />
Comprobación estática de tipos<br />
El compilador realiza una comprobación de tipos durante la primera pasada. La<br />
comprobación de tipos asegura el correcto uso de los argum<strong>en</strong>tos <strong>en</strong> las funciones<br />
y previ<strong>en</strong>e muchos tipos de errores de programación. Como esta comprobación de<br />
tipos ocurre se hace la compilación y no cuando el programa se está ejecutado, se<br />
conoce como comprobación estática de tipos.<br />
Algunos l<strong>en</strong>guajes ori<strong>en</strong>tados a objetos (Java por ejemplo) realizan comprobaciones<br />
<strong>en</strong> tiempo de ejecución (comprobación dinámica de tipos). Si se combina con la<br />
estática, la comprobación dinámica es más pot<strong>en</strong>te que sólo la estática. Sin embargo,<br />
añade una sobrecarga a la ejecución del programa.<br />
<strong>C++</strong> usa la comprobación estática de tipos debido a que el l<strong>en</strong>guaje no puede<br />
asumir ningún soporte particular durante la ejecución. La comprobación estática de<br />
tipos notifica al programador malos usos de los tipos durante la compilación, y así<br />
maximiza la velocidad de ejecución. A medida que apr<strong>en</strong>da <strong>C++</strong>, comprobará que la<br />
mayoría de las decisiones de diseño del l<strong>en</strong>guaje están tomadas <strong>en</strong> favor de la mejora<br />
del r<strong>en</strong>dimi<strong>en</strong>to, motivo por el cual C es famoso <strong>en</strong> la programación ori<strong>en</strong>tada a la<br />
producción.<br />
Se puede deshabilitar la comprobación estática de tipos <strong>en</strong> <strong>C++</strong>, e incluso permite<br />
al programador usar su propia comprobación dinámica de tipos - simplem<strong>en</strong>te<br />
necesita escribir el código.<br />
2.2. Herrami<strong>en</strong>tas para compilación modular<br />
La compilación modular es particularm<strong>en</strong>te importante cuando se construy<strong>en</strong><br />
grandes proyectos. En C y <strong>en</strong> <strong>C++</strong>, un programa se puede crear <strong>en</strong> pequeñas piezas,<br />
manejables y comprobables de forma indep<strong>en</strong>di<strong>en</strong>te. La herrami<strong>en</strong>ta más importante<br />
para dividir un programa <strong>en</strong> piezas más pequeñas es la capacidad de crear<br />
subrutinas o subprogramas que t<strong>en</strong>gan un nombre que las id<strong>en</strong>tifique. En C y <strong>en</strong><br />
<strong>C++</strong>, estos subprogramas se llamana funciones, que son las piezas de código que se<br />
pued<strong>en</strong> almac<strong>en</strong>ar <strong>en</strong> difer<strong>en</strong>tes ficheros, permiti<strong>en</strong>do la compilación separada. Dicho<br />
de otra forma, una función es la unidad atómica de código, debido a que no se<br />
puede t<strong>en</strong>er una parte de una función <strong>en</strong> un fichero y el resto <strong>en</strong> otro (aunque los<br />
ficheros pued<strong>en</strong> cont<strong>en</strong>er más de una función).<br />
Cuando se invoca una función, se le suel<strong>en</strong> pasar una serie de argum<strong>en</strong>tos, que<br />
son valores que desea que la función utilice durante su ejecución. Cuando la función<br />
termina, normalm<strong>en</strong>te devuelve un valor de retorno, que equivale al resultado.<br />
También es posible crear funciones que no t<strong>en</strong>gan ni argum<strong>en</strong>tos ni valor de retorno.<br />
Para crear un programa con múltiples ficheros, las funciones de un fichero deb<strong>en</strong><br />
acceder a las funciones y los datos de otros ficheros. Cuando se compila un fichero, el<br />
compilador de C o <strong>C++</strong> debe conocer las funciones y los datos de los otros ficheros,<br />
<strong>en</strong> particular sus nombres y su uso apropiado. El compilador asegura que las funciones<br />
y los datos son usados correctam<strong>en</strong>te. El proceso de "decirle al compilador"<br />
los nombres de las funciones externas y los datos que necesitan es conocido como<br />
declaración. Una vez declarada una función o una variable, el compilador sabe cómo<br />
comprobar que la función se utiliza adecuadam<strong>en</strong>te.<br />
40<br />
✐<br />
✐<br />
✐<br />
✐