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

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

Saved successfully!

Ooh no, something went wrong!