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 32 — #70<br />
✐<br />
Capítulo 1. Introducción a los Objetos<br />
Como los nombres están jerarquizados según las partes de su programa por medio<br />
de los espacios de nombres de <strong>C++</strong>, puede usar tantas librerías como quiera sin<br />
los conflictos de nombres típicos de C.<br />
1.11.6. Reutilización de código fu<strong>en</strong>te con plantillas<br />
Hay una categoría significativa de tipos que requiere modificaciones del código<br />
fu<strong>en</strong>te para lograr una reutilización efectiva. Las plantillas de <strong>C++</strong> llevan a cabo<br />
la modificación del código fu<strong>en</strong>te automáticam<strong>en</strong>te, convirtiéndola <strong>en</strong> una herrami<strong>en</strong>ta<br />
especialm<strong>en</strong>te pot<strong>en</strong>te para la reutilización del código de las librerías. Si se<br />
diseña un tipo usando plantillas funcionará fácilm<strong>en</strong>te con muchos otros tipos. Las<br />
plantillas son especialm<strong>en</strong>te interesantes porque ocultan al programador cli<strong>en</strong>te la<br />
complejidad de esta forma de reutilizar código.<br />
1.11.7. Manejo de errores<br />
La gestión de errores <strong>en</strong> C es un problema muy conocido, y a m<strong>en</strong>udo ignorado<br />
- cruzando los dedos. Si está construy<strong>en</strong>do un programa complejo y grande, no hay<br />
nada peor que t<strong>en</strong>er un error <strong>en</strong>terrado <strong>en</strong> cualquier lugar sin la m<strong>en</strong>or idea de cómo<br />
llegó allí. La gestión de excepciones de <strong>C++</strong> (introducida <strong>en</strong> este volum<strong>en</strong>, y explicada<br />
<strong>en</strong> detalle <strong>en</strong> el Volum<strong>en</strong> 2, que se puede descargar de www.BruceEckel.com)<br />
es un camino para garantizar que se notifica un error y que ocurre algo como consecu<strong>en</strong>cia.<br />
1.11.8. Programar a lo grande<br />
Muchos l<strong>en</strong>guajes tradicionales ti<strong>en</strong><strong>en</strong> limitaciones propias para hacer programas<br />
grandes y complejos. BASIC, por ejemplo, puede valer para solucionar ciertas<br />
clases de problemas rápidam<strong>en</strong>te, pero si el programa ti<strong>en</strong>e más de unas cuantas<br />
páginas o se sale del dominio de problemas de ese l<strong>en</strong>guaje, es como int<strong>en</strong>tar nadar<br />
a través de un fluido cada vez más viscoso. C también ti<strong>en</strong>e estas limitaciones. Por<br />
ejemplo, cuando un programa ti<strong>en</strong>e más de 50.000 líneas de código, los conflictos<br />
de nombres empiezan a ser un problema - efectivam<strong>en</strong>te, se queda sin nombres de<br />
funciones o variables. Otro problema particularm<strong>en</strong>te malo son los pequeños agujeros<br />
<strong>en</strong> el l<strong>en</strong>guaje C - errores <strong>en</strong>terrados <strong>en</strong> un programa grande que pued<strong>en</strong> ser<br />
extremadam<strong>en</strong>te difíciles de <strong>en</strong>contrar.<br />
No hay una línea clara que diga cuando un l<strong>en</strong>guaje está fallando, y si la hubiese,<br />
debería ignorarla. No diga: «Mi programa BASIC se ha hecho demasiado grande; ¡lo<br />
t<strong>en</strong>dré que reescribir <strong>en</strong> C!» En su lugar, int<strong>en</strong>te calzar unas cuantas líneas más para<br />
añadirle una nueva característica. De ese modo, el coste extra lo decide usted.<br />
<strong>C++</strong> está diseñado para ayudarle a programar a lo grande, es decir, eliminar las<br />
difer<strong>en</strong>cias de complejidad <strong>en</strong>tre un programa pequeño y uno grande. Ciertam<strong>en</strong>te<br />
no necesita usar POO, plantillas, espacios de nombres ni manejadores de excepciones<br />
cuando esté escribi<strong>en</strong>do un programa tipo «hola mundo», pero estas prestaciones<br />
están ahí para cuando las necesite. Y el compilador es agresivo <strong>en</strong> la detección de<br />
errores tanto para programas pequeños como grandes.<br />
32<br />
✐<br />
✐<br />
✐<br />
✐