Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 4 — #42<br />
✐<br />
Capítulo 1. Introducción a los Objetos<br />
«class» y viceversa 3 .<br />
Dado que una clase describe un conjunto de objetos que ti<strong>en</strong><strong>en</strong> idénticas características<br />
(elem<strong>en</strong>tos de datos) y comportami<strong>en</strong>tos (funcionalidad), una clase es realm<strong>en</strong>te<br />
un tipo de datos porque un número de punto flotante, por ejemplo, también<br />
ti<strong>en</strong>e un conjunto de características y comportami<strong>en</strong>tos. La difer<strong>en</strong>cia está <strong>en</strong> que el<br />
programador define una clase para resolver un problema <strong>en</strong> lugar de estar obligado<br />
a usar un tipo de dato exist<strong>en</strong>te diseñado para repres<strong>en</strong>tar una unidad de almac<strong>en</strong>ami<strong>en</strong>to<br />
<strong>en</strong> una máquina. Amplía el l<strong>en</strong>guaje de programación añadi<strong>en</strong>do nuevos<br />
tipos de datos específicos según sus necesidades. El sistema de programación acoge<br />
las nuevas clases y les presta toda la at<strong>en</strong>ción y comprobación de tipo que da a los<br />
tipos predefinidos.<br />
El <strong>en</strong>foque ori<strong>en</strong>tado a objetos no está limitado a la construcción de simulaciones.<br />
Esté o no de acuerdo con que cualquier problema es una simulación del sistema que<br />
está diseñando, el uso de técnicas POO puede reducir fácilm<strong>en</strong>te un amplio conjunto<br />
de problemas a una solución simple.<br />
Una vez establecida una clase, puede hacer tantos objetos de esta clase como<br />
quiera, y manipularlos como si fueran elem<strong>en</strong>tos que exist<strong>en</strong> <strong>en</strong> el problema que está<br />
int<strong>en</strong>tando resolver. De hecho, uno de los desafíos de la programación ori<strong>en</strong>tada a<br />
objetos es crear una correspond<strong>en</strong>cia unívoca <strong>en</strong>tre los elem<strong>en</strong>tos <strong>en</strong> el espacio del<br />
problema y objetos <strong>en</strong> el espacio de la solución.<br />
Pero, ¿cómo se consigue que un objeto haga algo útil por usted Debe haber<br />
una forma de hacer una petición al objeto para que haga algo, como completar una<br />
transacción, dibujar algo <strong>en</strong> la pantalla o activar un interruptor. Y cada objeto puede<br />
satisfacer sólo ciertas peticiones. Las peticiones que puede hacer un objeto están<br />
definidas por su intefaz, y es el tipo lo que determina la interfaz. Un ejemplo simple<br />
puede ser una repres<strong>en</strong>tación de una bombilla:<br />
Nombre del Tipo<br />
Luz<br />
Interfaz<br />
<strong>en</strong>c<strong>en</strong>der( )<br />
apagar( )<br />
int<strong>en</strong>sificar( )<br />
at<strong>en</strong>uar( )<br />
Figura 1.1: Clase Luz<br />
Luz luz1;<br />
luz1.<strong>en</strong>c<strong>en</strong>der();<br />
La interfaz establece qué peticiones se pued<strong>en</strong> hacer a un objeto particular. Sin<br />
embargo, se debe codificar <strong>en</strong> algún sitio para satisfacer esta petición. Ésta, junto con<br />
los datos ocultos, constituy<strong>en</strong> la implem<strong>en</strong>tación. Desde el punto de vista de la programación<br />
procedural, no es complicado. Un tipo ti<strong>en</strong>e una función asociada para cada<br />
posible petición, y cuando se hace una petición particular a un objeto, se llama a esa<br />
3 Hay qui<strong>en</strong> hace una distinción, afirmando que type determina la interfaz mi<strong>en</strong>tras class es una<br />
implem<strong>en</strong>tación particular de esta interfaz.<br />
4<br />
✐<br />
✐<br />
✐<br />
✐