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 XXX — #30<br />
✐<br />
Prefacio<br />
que la implem<strong>en</strong>tación se pueda cambiar fácilm<strong>en</strong>te sin afectar al código del cli<strong>en</strong>te.<br />
La palabra clave class también se pres<strong>en</strong>ta como una manera más elaborada de<br />
describir un tipo de datos nuevo, y se desmitifica el significado de la palabra «objeto»<br />
(es una variable elaborada).<br />
Capítulo 6: Inicialización y limpieza. Uno de los errores más comunes <strong>en</strong> C se<br />
debe a las variables no inicializadas. El constructor de <strong>C++</strong> permite garantizar que las<br />
variables de su nuevo tipo de datos («objetos de su clase») siempre se inicializarán<br />
correctam<strong>en</strong>te. Si sus objetos también requier<strong>en</strong> algún tipo de reciclado, usted puede<br />
garantizar que ese reciclado se realice siempre mediante el destructor <strong>C++</strong>.<br />
Capítulo 7: Sobrecarga de funciones y argum<strong>en</strong>tos por defecto. <strong>C++</strong> está p<strong>en</strong>sado<br />
para ayudar a construir proyectos grandes y complejos. Mi<strong>en</strong>tras lo hace, puede<br />
dar lugar a múltiples librerías que utilic<strong>en</strong> el mismo nombre de función, y también<br />
puede decidir utilizar un mismo nombre con difer<strong>en</strong>tes significados <strong>en</strong> la misma<br />
biblioteca. Con <strong>C++</strong> es s<strong>en</strong>cillo gracias a la «sobrecarga de funciones», lo que le permite<br />
reutilizar el mismo nombre de función siempre que la lista de argum<strong>en</strong>tos sea<br />
difer<strong>en</strong>te. Los argum<strong>en</strong>tos por defecto le permit<strong>en</strong> llamar a la misma función de difer<strong>en</strong>tes<br />
maneras proporcionando, automáticam<strong>en</strong>te, valores por defecto para algunos<br />
de sus argum<strong>en</strong>tos.<br />
Capítulo 8: Constantes. Este capítulo cubre las palabras reservadas const y v-<br />
olatile, que <strong>en</strong> <strong>C++</strong> ti<strong>en</strong><strong>en</strong> un significado adicional, especialm<strong>en</strong>te d<strong>en</strong>tro de las<br />
clases. Apr<strong>en</strong>derá lo que significa aplicar const a una definición de puntero. El capítulo<br />
también muestra cómo varía el significado de const según se utilice d<strong>en</strong>tro<br />
o fuera de las clases y cómo crear constantes d<strong>en</strong>tro de clases <strong>en</strong> tiempo de compilación.<br />
Capítulo 9: Funciones inline. Las macros del preprocesador eliminan la sobrecarga<br />
de llamada a función, pero el preprocesador también elimina la valiosa comprobación<br />
de tipos de <strong>C++</strong>. La función inline le ofrece todos los b<strong>en</strong>eficios de una macro<br />
de preprocesador además de los b<strong>en</strong>eficios de una verdadera llamada a función. Este<br />
capítulo explora minuciosam<strong>en</strong>te la implem<strong>en</strong>tación y uso de las funciones inline.<br />
Capítulo 10: Control de nombres. La elección de nombres es una actividad fundam<strong>en</strong>tal<br />
<strong>en</strong> la programación y, cuando un proyecto se vuelve grande, el número de<br />
nombres puede ser arrollador. <strong>C++</strong> le permite un gran control de los nombres <strong>en</strong> función<br />
de su creación, visibilidad, lugar de almac<strong>en</strong>ami<strong>en</strong>to y <strong>en</strong>lazado. Este capítulo<br />
muestra cómo se controlan los nombres <strong>en</strong> <strong>C++</strong> utilizando dos técnicas. Primero, la<br />
palabra reservada static se utiliza para controlar la visibilidad y <strong>en</strong>lazado, y se explora<br />
su significado especial para clases. Una técnica mucho más útil para controlar<br />
los nombres a nivel global es el namespace de <strong>C++</strong>, que le permite dividir el espacio<br />
de nombres global <strong>en</strong> distintas regiones.<br />
Capítulo 11: Las refer<strong>en</strong>cias y el constructor de copia. Los punteros de <strong>C++</strong> trabajan<br />
como los punteros de C con el b<strong>en</strong>eficio adicional de la comprobación de tipos<br />
más fuerte de <strong>C++</strong>. <strong>C++</strong> también proporciona un método adicional para manejar<br />
direcciones: <strong>C++</strong> imita la refer<strong>en</strong>cia de Algol y Pascal, que permite al compilador manipular<br />
las direcciones, pero utilizando la notación ordinaria. También <strong>en</strong>contrará el<br />
constructor-de-copia, que controla la manera <strong>en</strong> que los objetos se pasan por valor<br />
hacia o desde las funciones. Finalm<strong>en</strong>te, se explica el puntero-a-miembro de <strong>C++</strong>.<br />
Capítulo 12: Sobrecarga de operadores. Esta característica se llama algunas veces<br />
«azúcar sintáctico»; permite dulcificar la sintaxis de uso de su tipo permiti<strong>en</strong>do<br />
operadores así como llamadas a funciones. En este capítulo apr<strong>en</strong>derá que la sobrecarga<br />
de operadores sólo es un tipo de llamada a función difer<strong>en</strong>te y apr<strong>en</strong>derá cómo<br />
escribir sus propios operadores, manejando el -a veces confuso- uso de los argum<strong>en</strong>tos,<br />
devolvi<strong>en</strong>do tipos, y la decisión de si implem<strong>en</strong>tar el operador como método o<br />
XXX<br />
✐<br />
✐<br />
✐<br />
✐