ILAMACIén de ju, ea
"NOtecas 20st,Contenido
Prefacio
Antes de empezar
1a
12
13
14
15
16
17
18
19
1.10
1
-12
13
14
15
16
17
18
119
1.20
121
1.22
1.23
2a
22
23
24
25
26
27
28
29
Introduccién a las computadoras, Internet
y World Wide Web
Introduceién
Qué es una computadora?
Organizacién de una computadora
Los primeros sistemas operativos
Computacién personal, dist
Internet y World Wide Web
Web 2.0
Lenguajes miquina, lenguajes ensambladores y lenguajes de alto nivel
Historia de Cy C++
Biblioteca estinelar de C++
Historia de Java
FORTRAN, COBOL, Pascal y Ada
BASIC, Visual Basie, Visual C++, C# y NET
‘Tendencia clave de software: la tecnologia de los objetos
Entorno de desarrollo tipico en C++
Generalidades acerca de C++ y este libro
Prueba de una aplicacién en C++
Tecnologias de software
Programacién de juegos con las bibliotecas Ogre
Futuro de C++: Bibliotecas Boost de cédigo fuente abierto, TRI y C++0x
Ejemplo prictico de Ingenieria de Software: introduccién a la tecnologia de objetos y el UML
Repaso
Recursos Web
Introduccion a la programacion en C++
Introduccién
‘Su primer programa en C++: imprimir una linea de texto
Modificacién de nuestro primer programa en C++
Otro programa en C++: suma de enteros
‘Conceptos acerca de la memoria
Aritmética
‘Toma de decisiones: operadores de igualdad y relacionales
(Opcional) Ejemplo prictico de Ingenieria de Software: como examinar la especificacién
de requerimientos del ATM.
Repaso
35
36
36
39
40
44
45
47
52
59.A larvictimas de la tracedia de Virginia Tech,
ne fanaa exe amngsory a toda la comsided de
Virginta Teoh.
Panly Harvey Deitel‘Datos de catalogs
DDEITEL, HARVEY M. ¥ PAUL J. DEITEL
‘Cémo programar en C++. Sexta edicién
PEARSON EDUCACION, México 2009
ISBN: 978.970-26-12735
Area: Computacién
Formato: 20 X 25.5 *) 1037
Herencia mitiple 1039
Herencia multiple y clases base virtual 1043,
Repaso 1047xvi
Al
Da
D2
D3
D4
DS
DG
El
E2
E3
E4
BS
£6
E7
Eg
E9
E10
Ell
E12
E13
E14
F
FL
F2
3
F4
BS
FG
F7
FS
ES
E10
Contenido
Tabla de precedencia de operadores y asociatividad
Precedencia de operadores
Conjunto de caracteres ASCII
Tipos fundamentales
Sistemas numéricos
Introduccién
Abreviatura de los niimeros binarios como ntimeros actales y hexadecimales
Conversin de ntimeros octales y hexadecimales a binarios
Conversién de un ntimero binario, octal o hexadecimal a decimal
Conversién de un nimero decimal a binario, octal o hexadecimal
Nuimeros binarios negativos: notacién de complemento a dos
Temas sobre cédigo heredado de C
Incroduecién
Redireccién de la entrada/salida en sistemas UNIX/LINUX/Mac OS X y Windows
Listas de argumentos de longitud variable
Uso de argumentos de linea de comandos
Observaciones acerca de la compilacién de programas con varios archivos de cédigo fuente
‘Terminacién de los progeamas con exit y atexit
Calificador de tipo volatile
Subijos para constantes eniesas y de punto flocante
Manejo de sefiales
Asignacién dindmica de memoria con caloc y real Toc
Bifurcacién incondicional: goto
Uniones
Especificaciones de vinculacién
Repaso
Preprocesador
Introduccién
La directiva del procesador #include
La directiva del preprocesador #define: constantes simbdlicas
La directiva del preprocesador #define: macros
Compilacién condicional
Las directivas del preprocesador error y #pragna
Los operadores # y ##
Constantes simbélicas predefinidas
Aserciones
Repaso
1051
1054
1053
1054
1056
1057
1059
1060
1061
1061
1062
1067
1068
1068
1069
1071
1072
1074
1075
1075
1076
1078
1078
1080
1082
1083
1088
1089
1089
1090
1090
1092
1092
1093
1093
1093
1094Contenido xvii
G _Cédigo del caso de estudio del ATM 1098
G.1 __ Implementacién del caso de estudio del ATM. 1098
G2 Laclase ATH 1099
G3 Lachase Pantalla 1104
GA Laclase Teclado 1105
G.5__ Laclase DispensadorEfectivo 1106
G6 __Laclase RanuraDeposito 1108
G.7 _Laclase Cuenta 1109
G8 Lachase BaseDatosBanco mu
G9 Laclase Transaccion 1114
G.10 La clase Solici tudSatdo 115
G.11_ Laclase Retiro 1117
G.12 La clase Deposi to 1121
G.13 El programa de prucba EjenploPracticoATM..cpp 1124
G14 Repaso 1124
H UML 2: tipos de diagramas adicionales 1125
H.1 — Introduccién 1125
H.2_ Tipos de diagramas adicionales 1125
I Uso del depurador de Visual Studio 1127
Li Introduccién as
12 Los puntos de interrupcisn y el comando Centinuar 1128
13 Las ventanas Variables locales c Inspeccién 1132
14 Control de la ejecucién mediante los comandos Paso a paso por instrucciones,
Paso a paso por procedimientos, Paso a paso para salir y Continuar 1135,
LS La ventana Automatico: 1137,
1.6 — Repaso 1138
J Uso del depurador de GNU C++ 1141
pet Introduccién 1142
J.2 Los puntos de interrupcidn y los comandos run, stop, continue y print 1142
J.3. Los comandos print y set 1147
J4 Control de la ejecucién mediante los comandos step, finish y next 1149
JS El comando watch 1151
J. Repaso 1153,
Bibliogra' 1157
indice 1163Prefacio
“EL principal mérito del lenguaje es la clavided...”
—Galen
Bienvenido a C+# y Cémo programar en C++, sexta ediciér\ En Deitel 8& Associates escribimos libros de texto sobre
lenguajes de programacién y libros de nivel profesional para Prentice Hall, impartimos capacitacién a empresas en todo
el mundo y desarrollamos negocios en Internet con Web 2.0. Este libro refleja los cambios importantes en el lenguaje
‘C++ y en las formas preferidas de impartir y aprender programacién. Se han realizado ajustes considerables en todos los
capitulos. La seccién Recorrido a través del libro del prefacio proporciona a los instructores, estudiantes y profesionales una
idea del tipo de cobertura que ofrece este texto sobre C++ y la programacién orientada a objetos.
Caracteristicas nuevas y mejoradas
He aqui una lista de las actualizaciones que hemos realizado a la sexta edicién de Gémo programar en G++:
+ Programacién de juegos. Hemos agregado un nuevo capitulo sobre la programacién de juegos. Los ingresos
de la industria de juegos de computadora son ya mayores que los de la industria cinematografica, con lo cual se
crean muchas oportunidades para los estudiantes interesados en carreras relacionadas con la programacién de
juegos. El capitulo 23, Programacién de juegos con Ogre, introduce la programacién de juegos y los grificos
con el motor de grificos Ogre 3D, de cédigo fuente abierto. Hablaremos sobre las cuestiones bisicas relacio-
nadas con la programacién de juegos. Después le mostraremos cémo utilizar Ogre para crear un juego simple
‘con una mecénica de juego similar al clésico vidcojuego Pong®, desarrollado originalmente por Atari en 1972.
Demostraremos cémo crear una escena con grificos 3D a colores, cémo animar los objetos méviles de manera
uniforme, cémo usar los temporizadores para controlar la velocidad de animacién, detectar colisiones entre
objetos, agregar sonido, aceptar la entrada mediante el teclado y mostrar salida de texto.
+ El futuro de C++. Hemos agregado el capftulo 24, en el que se considera el futuro de C++5 presentamos las
Bibliotecas Boost de C++, el Informe técnico 1 (TRI) y C++0x. Las bibliotecas gratuitas Boost de cédigo
fuente abierto son creadas por miembros de la comunidad de C++. El Informe técnico 1 describe los cam-
ios propuestos a la Biblioteca estindar de C++, muchos de los cuales estén basados en las bibliotecas Boost
actuales. El Comité de estindares de C++ esta revisando el Estindar de C++. Los principales objetivos para el
nuevo estindar son faclitar el aprendizaje de este Lenguaje, mejorar las herramientas para construir bibliotecas
¢€ incrementar su compatibilidad con el lenguaje C. El iltimo estndar se publicé en 1998. El trabajo sobre el
nuevo estandar, que se conoce actualmente como C++0x, empez6 en 2003 y es probable que se publique en
2009. Incluiré cambios al lenguaje del micleo y, muy probablemente, a muchas de las bibliotecas en el TRI.
‘Aqui veremos las generalidades acerca de las bibliotecas del TRI y proporcionaremos cédigos de ejemplo para
las de “expresiones regulares’ y “apuntadores inteligentes”. Las expresiones regulares se utilizan para relacio-
nar patrones de caracteres especificos en el texto. Pueden.usarse para validar los datos, para asegurar que se
encuentren en un formato especifico, para sustituir partes de una cadena con otra o para dividirla. Muchos
de los errores comunes en el cédigo de C y C++ se relacionan con los apuntadores, una poderosa herramien-
ta de programacién que estudiaremos en el capitulo 8, Apuntadores y cadenas basadas en apuntadores. Los
apuntadores inteligentes nos ayudan a evitar errores al proporcionar una funcionalidad adicional a fos apu
tadores estindar.
‘+ Importantes revisiones de contenido. ‘Todos los capitulos se han act
lizado y mejorado de manera conside-
rable, Ajustamos la claridad y precisidn de la escricura, asi como el uso de la terminologia de C++, de confor-
midad con el documento del estindar ISO/IEC de C++ que define el lenguaje.