Pensar en C++ "libro"
i
“Volumen1” — 2011/7/22 — 2:27 — page I — #1
i
i
Pensar en C++ (Volumen 1)
Traducción (cuasi-terminada) del libro Thinking in C++, Volumen 1
Bruce Eckel
22 de julio de 2011
Puede encontrar la versión actualizada de este libro e información adicional sobre el proyecto de traducción en
http://arco.esi.uclm.es/~david.villa/pensarC++.html
i
i
i
i
i
i“Volumen1” — 2011/7/22 — 2:27 — page II — #2
i
i
Pensar en C++ (Volumen 1)
by Bruce Eckel
Copyright © 2000 Bruce Eckel
II
i
i
i
i
i
i
“Volumen1” — 2011/7/22 — 2:27 — page III — #3
i
i
Índice general
1. Introducción a los Objetos
1
1.1. El progreso de abstracción . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2. Cada objeto tiene una interfaz. . . . . . . . . . . . . . . . . . . . . . . .
3
1.3. La implementación oculta . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.4. Reutilizar la implementación . . . . . . . . . . . . . . . . . . . . . . . .
6
1.5. Herencia: reutilización de interfaces . . . . . . . . . . . . . . . . . . . .
7
1.5.1.
Relaciones es-un vs. es-como-un
. . . . . . . . . . . . . .. . . 10
1.6. Objetos intercambiables gracias al polimorfismo . . . . . . . . . . . . . 11
1.7. Creación y destrucción de objetos . . . . . . . . . . . . . . . . . . . . . . 15
1.8. Gestión de excepciones: tratamiento de errores . . . . . . . . . . . . . . 16
1.9. Análisis y diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.9.1.
Fase 0: Hacer un plan . . . . . . .. . . . . . . . . . . . . . . . . 18
1.9.1.1.
Declaración de objetivos . . . . . . . . . . . . . . . . . 19
1.9.2.
Fase 1: ¿Qué estamos haciendo? . . . . . . . . . . . . . . . . . . 19
1.9.3.
Fase 2: ¿Cómo podemos construirlo? . . . . . . . . . . . . . . . 22
1.9.3.1.
Las cinco etapas del diseño de objetos . . . . . . . . . 23
1.9.3.2.
Directrices para desarrollo deobjetos . . . . . . . . . . 24
1.9.4. Fase 3: Construir el núcleo
1.9.5.
. . . . . . . . . . . . . . . . . . . . . 25
Fase 4: Iterar los casos de uso . . . . . . . . . . . . . . . . . . . . 25
1.9.6. Fase 5: Evolución . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.9.7. Los planes valen la pena . . . . . . . . . . . . . . . . . . . . . . . 27
1.10. Programación Extrema . . . .. . . . . . . . . . . . . . . . . . . . . . . . 27
1.10.1. Escriba primero las pruebas . . . . . . . . . . . . . . . . . . . . . 28
1.10.2. Programación en parejas . . . . . . . . . . . . . . . . . . . . . . . 29
1.11. Porqué triunfa C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.11.1. Un C mejor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.11.2.Usted ya está en la curva de aprendizaje . . . . . . . . . . . . . 30
1.11.3. Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.11.4. Los sistemas son más fáciles de expresar y entender . . . . . . . 31
III
i
i
i
i
i
i
“Volumen1” — 2011/7/22 — 2:27 — page IV — #4
i
i
Índice general
1.11.5. Aprovechamiento máximo con librerías . . . . . . . .. . . . . . 31
1.11.6. Reutilización de código fuente con plantillas . . . . . . . . . . . 32
1.11.7. Manejo de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.11.8. Programar a lo grande . . . . . . . . . . . . . . . . . . . . . . . . 32
1.12. Estrategias de transición . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.12.1. Directrices . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . 33
1.12.1.1. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . 33
1.12.1.2. Proyectos de bajo riesgo . . . . . . . . . . . . . . . . . 33
1.12.1.3. Modelar desde el éxito . . . . . . . . . . . . . . . . . . 33
1.12.1.4. Use librerías de clases existentes . . . . . . . . . . . . . 34
1.12.1.5. No reescriba en C++ código que ya existe . . . . . ....
Regístrate para leer el documento completo.