13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!