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 36 — #74<br />

✐<br />

Capítulo 1. Introducción a los Objetos<br />

algui<strong>en</strong> experim<strong>en</strong>tado con el l<strong>en</strong>guaje puede ser un tema de gran debate interno<br />

para un novato. La mayor parte de este trauma se puede olvidar usando un experto<br />

externo para <strong>en</strong>señar y tutorizar.<br />

Por otro lado, el hecho de que estos errores de diseño son fáciles de cometer,<br />

apunta al principal inconv<strong>en</strong>i<strong>en</strong>te de <strong>C++</strong>: su compatibilidad con C (por supuesto,<br />

también es su principal fortaleza). Para llevar a cabo la hazaña de ser capaz de compilar<br />

código C, el l<strong>en</strong>guaje debe cumplir algunos compromisos, lo que ha dado lugar<br />

a algunos «rincones oscuros». Esto es una realidad, y compr<strong>en</strong>de gran parte de la<br />

curva de apr<strong>en</strong>dizaje del l<strong>en</strong>guaje. En este libro y <strong>en</strong> el volum<strong>en</strong> posterior (y <strong>en</strong> otros<br />

libros; ver el Apéndice C), int<strong>en</strong>to mostrar la mayoría de los obstáculos que probablem<strong>en</strong>te<br />

<strong>en</strong>contrará cuando trabaje con <strong>C++</strong>. Debería ser consci<strong>en</strong>te siempre de que<br />

hay algunos agujeros <strong>en</strong> la red de seguridad.<br />

1.13. Resum<strong>en</strong><br />

Este capítulo int<strong>en</strong>ta darle s<strong>en</strong>tido a los ext<strong>en</strong>sos usos de la programación ori<strong>en</strong>tada<br />

a objetos y <strong>C++</strong>, incluy<strong>en</strong>do el porqué de que la POO sea difer<strong>en</strong>te, y porqué<br />

<strong>C++</strong> <strong>en</strong> particular es difer<strong>en</strong>te, conceptos de metodología de POO, y finalm<strong>en</strong>te los<br />

tipos de cuestiones que <strong>en</strong>contrará cuando cambie su propia compañía a POO y <strong>C++</strong>.<br />

La POO y <strong>C++</strong> pued<strong>en</strong> no ser para todos. Es importante evaluar sus necesidades<br />

y decidir si <strong>C++</strong> satisfará de forma óptima sus necesidades, o si podría ser mejor con<br />

otros sistemas de programación (incluido el que utiliza actualm<strong>en</strong>te). Si sabe que sus<br />

necesidades serán muy especializadas <strong>en</strong> un futuro inmediato y ti<strong>en</strong>e restricciones<br />

específicas que no se pued<strong>en</strong> satisfacer con <strong>C++</strong>, <strong>en</strong>tonces debe investigar otras alternativas<br />

22 . Incluso si finalm<strong>en</strong>te elige <strong>C++</strong> como su l<strong>en</strong>guaje, por lo m<strong>en</strong>os <strong>en</strong>t<strong>en</strong>derá<br />

qué opciones había y t<strong>en</strong>drá una visión clara de porqué tomó esa dirección.<br />

El lector conoce el aspecto de un programa procedural: definiciones de datos y<br />

llamadas a funciones. Para <strong>en</strong>contrar el significado de un programa ti<strong>en</strong>e que trabajar<br />

un poco, revisando las llamadas a función y los conceptos de bajo nivel para<br />

crear un modelo <strong>en</strong> su m<strong>en</strong>te. Esta es la razón por la que necesitamos repres<strong>en</strong>taciones<br />

intermedias cuando diseñamos programas procedurales - por eso mismo, estos<br />

programas ti<strong>en</strong>d<strong>en</strong> a ser confusos porque los términos de expresión están ori<strong>en</strong>tados<br />

más hacia la computadora que a resolver el problema.<br />

Como <strong>C++</strong> añade muchos conceptos nuevos al l<strong>en</strong>guaje C, puede que su asunción<br />

natural sea que el main() <strong>en</strong> un programa de <strong>C++</strong> será mucho más complicado<br />

que el equival<strong>en</strong>te del programa <strong>en</strong> C. En eso, quedará gratam<strong>en</strong>te sorpr<strong>en</strong>dido: un<br />

programa <strong>C++</strong> bi<strong>en</strong> escrito es g<strong>en</strong>eralm<strong>en</strong>te mucho más simple y mucho más s<strong>en</strong>cillo<br />

de <strong>en</strong>t<strong>en</strong>der que el programa equival<strong>en</strong>te <strong>en</strong> C. Lo que verá son las definiciones<br />

de los objetos que repres<strong>en</strong>tan conceptos <strong>en</strong> el espacio de su problema (<strong>en</strong> lugar de<br />

cuestiones de la repres<strong>en</strong>tación <strong>en</strong> el computador) y m<strong>en</strong>sajes <strong>en</strong>viados a otros objetos<br />

para repres<strong>en</strong>tar las actividades <strong>en</strong> este espacio. Ese es uno de los placeres de<br />

la programación ori<strong>en</strong>tada a objetos, con un programa bi<strong>en</strong> diseñado, es fácil <strong>en</strong>t<strong>en</strong>der<br />

el código leyéndolo. Normalm<strong>en</strong>te hay mucho m<strong>en</strong>os código, <strong>en</strong> parte, porque<br />

muchos de sus problemas se resolverán utilizando código de librerías exist<strong>en</strong>tes.<br />

22 En particular, recomi<strong>en</strong>do mirar Java http://java.sun.com y Python http://www.python.org.<br />

36<br />

✐<br />

✐<br />

✐<br />

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

Saved successfully!

Ooh no, something went wrong!