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

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

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

Saved successfully!

Ooh no, something went wrong!