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

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 66 — #104<br />

✐<br />

Capítulo 3. C <strong>en</strong> <strong>C++</strong><br />

} ///:~<br />

En cfunc(), el primer if que comprueba que la condición sea true sale de<br />

la función con la s<strong>en</strong>t<strong>en</strong>cia return. Fíjese que la declaración de la función no es<br />

necesaria puesto que la definición aparece antes de ser utilizada <strong>en</strong> main(), de modo<br />

que el compilador sabe de su exist<strong>en</strong>cia desde dicha definición.<br />

3.1.2. Uso de funciones de librerías C<br />

Todas las funciones <strong>en</strong> la librería local de funciones de C están disponibles cuando<br />

se programa <strong>en</strong> <strong>C++</strong>. Se debería buscar bi<strong>en</strong> <strong>en</strong> la librería de funciones antes de<br />

definir una propia - hay muchas probabilidades de que algui<strong>en</strong> haya resuelto el problema<br />

antes, y probablem<strong>en</strong>te haya dedicado más tiempo p<strong>en</strong>sando y depurando.<br />

Una advert<strong>en</strong>cia, del mismo modo: muchos compiladores incluy<strong>en</strong> muchas funciones<br />

extra que hac<strong>en</strong> la vida mucho mas fácil y resultan t<strong>en</strong>tadoras, pero no son<br />

parte de la Librería C Estándar. Si está seguro de que jamás deseará portar la aplicación<br />

a otra plataforma (¿y quién está seguro de eso), adelante -utilice esas funciones<br />

y haga su vida más fácil. Si desea que la aplicación pueda ser portada, debería ceñirse<br />

únicam<strong>en</strong>te al uso de funciones de la Librería Estándar. Si debe realizar actividades<br />

específicas de la plataforma, debería int<strong>en</strong>tar aislar este código de tal modo que pueda<br />

cambiarse fácilm<strong>en</strong>te al migrarlo a otra plataforma. En <strong>C++</strong>, las actividades de<br />

una plataforma específica a m<strong>en</strong>udo se <strong>en</strong>capsulan <strong>en</strong> una clase, que es la solución<br />

ideal.<br />

La fórmula para usar una librería de funciones es la sigui<strong>en</strong>te: primero, <strong>en</strong>contrar<br />

la función <strong>en</strong> la refer<strong>en</strong>cia de programación (muchas refer<strong>en</strong>cias de programación<br />

ord<strong>en</strong>an las funciones por categoría además de alfabéticam<strong>en</strong>te). La descripción de<br />

la función debería incluir una sección que demuestre la sintaxis del código. La parte<br />

superior de esta sección ti<strong>en</strong>e al m<strong>en</strong>os una línea #include, mostrando el fichero<br />

principal que conti<strong>en</strong>e el prototipo de función. Debe copiar este #include <strong>en</strong> su<br />

fichero para que la función esté correctam<strong>en</strong>te declarada. Ahora puede llamar la<br />

función de la misma manera que aparece <strong>en</strong> la sección de sintaxis. Si comete un error,<br />

el compilador lo descubrirá comparando la llamada a la función con el prototipo de<br />

la cabecera e informará de dicho error. El <strong>en</strong>lazador busca <strong>en</strong> la Librería Estándar por<br />

defecto, de modo que lo único que hay que hacer es: incluir el fichero de cabecera y<br />

llamar a la función.<br />

3.1.3. Creación de librerías propias<br />

Puede reunir funciones propias juntas <strong>en</strong> una librería. La mayoría de paquetes<br />

de programación vi<strong>en</strong><strong>en</strong> con un FIXME:bibliotecario que maneja grupos de módulos<br />

objeto. Cada FIXME:bibliotecario ti<strong>en</strong>e sus propios comandos, pero la idea g<strong>en</strong>eral<br />

es la sigui<strong>en</strong>te: si se desea crear una librería, se debe hacer un fichero cabecera que<br />

cont<strong>en</strong>ga prototipos de todas las funciones de la librería. Hay que ubicar este fichero<br />

de cabecera <strong>en</strong> alguna parte de la ruta de búsqueda del preprocesador, ya sea <strong>en</strong> el<br />

directorio local (de modo que se podrá <strong>en</strong>contrar mediante #include "header")<br />

o bi<strong>en</strong> <strong>en</strong> el directorio include (por lo que se podrá <strong>en</strong>contrar mediante #include<br />

). Luego se han de juntar todos los módulos objeto y pasarlos al<br />

FIXME:bibliotecario junto con un nombre para la librería recién construida (la mayoría<br />

de los bibliotecarios requier<strong>en</strong> una ext<strong>en</strong>sión común, como por ejemplo .lib<br />

o .a). Se ha de ubicar la librería completa donde residan todas las demás, de ma-<br />

66<br />

✐<br />

✐<br />

✐<br />

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

Saved successfully!

Ooh no, something went wrong!