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