You are on page 1of 1088
a OCR ER bg ee 56 59 5.10 51 5.12 61 62 Contenido Introduccién a las clases y los objetos Introduccién (Clases, objets, funciones miembro y miembros de datos, Generalidades acerca de los ejemplos del capitulo Definicién de una clase con una funcién miembro Definicién de una funcién miembro con un parimetro ‘Miembros de datos, funciones establecer y funciones obtener Inicializcién de objetos mediante constructores, Colocar una clase en um archivo sepatado para fines de reutlizacién Separar la interfax de la implementacién, Validaciin de datos mediante funciones establecer (Opcional) Ejemplo prictico de Ingenieria de Software: dentificacién de ls clases en la especificacién dle requerimientos del ATM Repaso Instrucciones de control: parte | Tnroduceién| Algorienos Seudocédigo Estructuras de control Instruccién de sleecin if Instruccin de slecciin doble if. Tastruccién de sepeticin whiTe Céano forrnular algoritmos:repeicién controlada por un contador (mo formular algoritmos:repeticién controlada por un centnela imo formular algoritmos:instrueciones de contol anidadas Operadores de asignacin Operadores de incremento y decremento (Opcional) Ejemplo prictico de Ingenieria de Softwar: identificacion de lo atributos dela clases en el sistema ATM Repaso Instrucciones de control: parte 2 Introduecién Fundamentos de la repeticién controlada por contador Tnsruccién de repeticidn for jemplos acerca del uso de la instruccién for Tnscruccién de repercidn do. while Instrucci6n de seleceién miltiple switch Instrucciones break y continue Operadores I ‘Confusin entre los operadores de igualdad (a=) y de asignacin (=) Resumen sobre programacién estructurada (Opcional) Ejemplo prictico de Ingenieria de Software: cémo identilicar los estados y act de los objetos en el sistema ATM. Repaso Funciones y una introduccién a la recursividad Inuoduccin ‘Componentes de los programas en C++ Funciones mateméticas de la biblioteca 67 68 68 oy 70 2 75 81 84 a7 93 7 102 109 10 110 i 112 15 116 120 121 126 135 139 139 142 146 159 160 160 162 165 169 171 179 180 134 185 189 193 203 204 205, 206 Contenido Prefacio Antes de empezar 1 12 13 14 1s. 16 ie 18 19 110 1 112 113 14 145 16 Li7 Lig. 119 120 121 1.22 1.23 21 22 23, 24 a 26 28 29 Introduccion a las computadoras, Internet y World Wide Web Tneroduccién Qué es una computadora? Organizacién de una computador os primeros sistemas operativos Computacisn personal, dstibuida y clientelservider Intemer y World Wiee Web Web 2.0 Lenguajes maquina, lenguajes ensambladores y lenguajes de alto nivel Historia de Cy Cr+ Biblioteca estindar 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 Ces y exe libro Prucba de una aplicacion en C++ Tecnologias de software Progeamacién de juegos con las bibliotecas Ogre Futuro de C++: Bibliotecas Boost de e6digo fuente abi Bjemplo préctico de Ingenieria de Software: intro Repaso Recursos Web t0, TRI y C+40x Introduccién a la programacién en C++ Inroduecién Sa primer programa en Cs: imprimir una linea de texto Modificacién de nuestro primer programa en C++ Ouzo programa en Cre: sma de enteros Conceptos acerea de la memoria Aviernética ‘Toma de decisiones: operadores de igualdad y relacionales (Opcional) Ejemplo prictico de Ingenieria de Sofware: como examina la expecficaciin de requetimientos del ATM Repaso xxxIX, Alas vitinas de la tragedia de Virginia Tech, cu familias me anitory a ted la conatnided de Virginia Tech. Porly Harvey Deitel ‘Dios de catlogacén bb hogriicn DDEITE, HARVEY. PAUL}. DERE (Cémo programas en Cr+. Sets edisin PEARSON EDUCACION, Mésico 2009 ISBN: 978-97026-12735, Arex: Computacin Formato: 20 X 255 ¢m Piginas: 112 Auhorzed tanto frm che Es by Peas Education, Inc, publ ISBN 0136152505, uh anguge edition, enka C+ How progam, edi by Det 8 Avocates (Harvey & Pal) published Pence Hall Copyright ©2008, Al igh reserved Tiaducin autora de lec en oma inglés ilada Cr+ lw program, @ edn, por Deel & Aso Reason Educaton, Inc, publiada como Prenice Hal, Copyright © 2008, Tos los derecho sera es (Harvey & Pau), publcada por xa edison spt Ia nica atovizad, dca ex expat Elie: Laie Miguel Cx Casill ‘mal s.cunepeasoned com dio de deal Bernanlino Gare Heaninder Supervisor de producedn: Juan Jot Garca Guzméa lin en inglés ‘Vice Pesident and Edigorl Diner, ECS: Marcia. Horton ‘Associate Editor Carole Sayder SuperseEderal Asian Doles Mars Dincor of Team-Based Project Management Vince O'Bien Sor Managing Bion: Scott Dianne Managing Editor Bob Engetharde Production Edin: Mare Samed AY Production Edor: Greg Dalles ‘Are Saati: Areworks, York PA ‘Are Dies: Keating Carey Cover Design: Abbey S. Datel, Harvey M. Deitel, Franceic Santalaca Kristine Carey Ietioe Design: Harvey M, Dekel, Keine Caney “Manuficuing Manager: Alexis Hed Long ‘Manufsctarng Buyer: Liss McDowell Dinecor of Making: Margare Waples SEXTA EDICION, 2009 D.R.© 2008 por Fearon Educa de Misco, SA de CX, “Aulacomeo 500-50. piso Gol Indust Ato 58519, Naualpn de Jute, stad de México (Cimara Nacional de andra Editon Meacans. Reg. nim 103, Premice Hills una maea rst de eaion Educa de México, S.A. de CV. eserads dos lon derechos, Ns oad i prtede esta publican pueden epoca o transmit, porunsiemaderecupetacén 4 nformacién, en ning forma ni por ningn medio, ea electdnic, mec, otogulmice, magnéio o cketzapdco, por fxocopi,pabacon cuir oo, sin permis previo por ect dl ein pesto, agile o cualquier ota forma de csi de uso de ee ejemplar rues también a autrizain del eivor odes representantes. ISBN 10: 970-26:1273.x ISBN 13: 978-970-26-12735 Inmpreso en Méscn, Printed in Mexico, 1234567890-11 100908 PEARSON Educacién — Sexta edicién - +4 COMO PROGRAMAR. Harvey M. Deitel Deitel & Associates, Inc. Paul J. Deitel Deitel & Associates, Inc. TRADUCCION Alfonso Vidal Romero Elizondo Ingeniero en Electrénica y Comunicactén Insitato Tecnoliico y de Extudios Superiores de Monterrey ‘Campus Monterrey REVISION TECNICA ‘Jestis Mufioz Bauza Departamento de Computacion Division de Ingenieria y Arquitectara Teenolégico de Monterrey Campus Ciudad de México Sergio Fuenlabrada Velzquez Oskar A. Gémez C. Edna M. Miranda Ch. Mario Oviedo G. Adalberto Robles V. Mario A. Sesma M. Departamento de Compuacion Unidad Profesional Iterdsciplinara de Ingenieria > Ciencias Sociales y Administratvas Instat Poltéenico Nacional aUeon Educacion iz México + Argentina + Brasil + Colombia * Costa Rica * Chile » Eeusdor Espait + Guatemala » Panama «Pert» Puerto Rico * Uruguay *Venezucla Contenido 64 —_Definciones de funciones con varios pardmetros 207 6.5 Prototipos de funciones y coercin de argumentos 21 6.6 Archivos de encabezado de la Biblioteca extindar de C++ 213 6.7 Ejemplo prictico: generacién de mimeros acatorios 215 68 Fjemplo prictco: juego de probabilidad, introduccién alas enumeraciones 220 69 Clases de almacenamiento 223 6.10 Reghas de aleance 235 6.11 _Lapilade lamadas a funciones y los regstros de actvacién 228 6.12 Fanciones con lista de parimetros vacias Bi 6.13 Funciones en linea 232 6.14 Referencias y parimetrs de referencias 233 6.15 Argumentos predeterminados 237 6.16 Operador de tesolucién de Smbito unatio 239 6.17 _Sobrecarga de funciones 240 6.18 Plantillas de funciones 243 6.19 Recusividad 245 6.20 Ejemplo sobre el uso de a recursividad: serie de Fibonacci 247 621 Comparacion entre recucsvidad e iteracin 250 6.22 _(Opcional) Ejemplo prictco de Ingenieria de Software: idenificacin de as operaciones de ls clases en l sistema ATM 253 6.23 Repaso 258 7 Arreglos y vectores 277 7.1 Incroduccién 278 72 Arrglos 279 73. Declaracién y creacién de areglos 280 7.4 Bjemplos acerca del uso de los arreglos 280 74.1 Declaracién de un arteglo y uso de un ciclo para inicializar los elementos del arreglo 281 7.4.2 Iniilizacién de un arreglo en una declaracién mediante una lista inicialiadora 281 7.4.3 Especificacién del tamafo de un arrelo con una variable constantey cstablecimicno de los elementos de un arreglo con cileulos 283 7.44 Suma de los elementos de un arzeglo 285 7.45. Uso de gréficos de barra para mostrar los datos de un arreglo en forma grifica 286 7.46 Uso delos elementos de un arreglo como contadores 287 7.47 Uso de arteglos para sinteiza los resultados de una encuesta 288 74.8 Uso de aregls tipo caricter para almacenat y manipular eadenas 291 7.4.9 Arreglos locales eséticos y arteglos locales automaticos 292 7.5 Paso de azeglo a funciones 294 7.6 Ejemplo prictico: la clase LibroCa1/ficaciones que usa un arreglo para almacenar has alificaciones 298 7.7 Bisqueda de datos en arrglos mediante la bisqueda lineal 304 7.8 Oxdenamiento de artegios mediante el ordenamiento por insercién 305 7.9 Arcegios multidimensionales 307 7.10 Ejemplo prictico: la clase LibroCatificactones que usa un arreglo bidimensional 310 7.11 Introduccién a la plantilla de clase vector de la Biblioteca extindar de C+ 316 7.12 (Opcional) Ejemplo préctico de Ingenieria de Software: colaboracién entc los objetos en el sistema ATM 320 7.13 Repaso 326 8 Apuntadores y cadenas basadas en apuntadores 341 8.1 Introduccién 342 8.2 Declaraciones einicilizacion de variables apuntadores 342 8.3 Operadores de apuntadores 343 84 Paso de argumentos a funciones por referencia mediante apuntadores 346 85 86 87 88 89 8.10 all a2 813, ald 9a 92 93 94 95 96 97 98 99 9.10 9.1 92 10 10.1 102 103, 104 105 106 10.7 108 109 10.10 10.11 i Ma 2 113; 4 15, 16 Contenido Uso de const con apuntadores (Ordenamiento por selecci6n mediante el uso del paso por referencia Operador sizeof Exprsiones y aritmética de apuntadores Relacin entre apuntadoresy areglos Artegls de apuntadores Ejemplo pritico:simulacién para haraary cepa arts Apuntadores a funciones Introduccin al procesamiento de cadenas basadas en apuntador Repaso Clases: un anilisis mas detallado, parte! Ineroduccién Ejemplo prictico con la clase Tiempo Aleance de las clases y acceso alos miembros de una clase Separar la incerfaz de la implementacién Funciones de acceso funciones utltarias Ejemplo prictico de la clase Tiempo: constructores con argumentos predeterminados Descructores Cusindo se hacen llamadas alos constrctoresy destructores jemplo prictico con la clase Tiempo: una trampa suri (devolver una referencia a un miembro de datos private) Asignacién predeterminada a nivel de miembros (Opcional) Ejemplo prictico de Ingenieria de Software: inicio dela programacién de las clases del sistema ATM Repaso Clases: un anilisis mas detallado, parte 2 Introduecién Objetos const (constantes) y funciones miembro const ‘Composicién: objetos como miembros de clases Funciones friend y lass friend Uso del spuntador this Administraci6n dinimica de memoria con los operadores new y delete Miembros de case static Abscraccién de datos y ocultamiento de informactén 10.8.1 Ejemplo: tipo de datos abstract arrglo 10.8.2 Ejemplo: tipo de datos abseracto cadena 10.8.3 Ejemplo: tipo de datos abstracto cola Clases contenedoras eiteradores (Clases proxy Repaso Sobrecarga de operadores: objetos String y Array Incroduccién Fundamentos de la sobrecarga de operadores Restricciones acerca de la sobrecarga de operadores Las funciones de operadores como clase miembro vs. funcionesglobales Sobrecarga de los operadores de insercin de flujo y extaccién de Flujo Sobrecarga de operadores unarios 349 355 358 360 362 367 372 376 384 407 408 409 414 416 416 419 423, 424 az 29 431 87 443 444 “a 452 458 461 466 467 72 a3 a a4 a4 475 477 483 484 485, 485, 487 488 491 nz 118 ng 11.10 nat naz 11413 nad nas 12 12 122 123 124 125 126 127 128 13 Ba 132 133 134 BS B6 137 138 139 13.10 Bal Contenido Sobrecarga de operadores binatios Ejemplo préctico: la clase Array Conversén entre tipos Ejemplo préetico: la case String Sobrecarga de ++ y—~ Fjemplo préctco: una clase Fecha La dase string de la Biblioteca estindar Constructores explicit Repaso Programacién orientada a objetos: heren Introduceién Clases base y clases derivadas Miembros protected Relacién entre las clases base y las clases derivadas 12.4.1 Creacién y uso de una clase EmpleadoPorConi sion 124.2 Creacién de una clase EapleadoBaseMasComi sion sin usar la herencia 12.4.3. Creacién de tna jerarqufa de herencia EmpleadoPorComision-Empleado-BaselasComi sion 1244 La jerarquia de hetencia Exp1eadoPorComis ion-Enp]eadoBaseMasComi sion mediante el uso de datos protected 124.5 La jerarquia de herencia Empl eadoPorComision-EnpleadoBaseMasComi sion mediante el uso de datos private ‘Los constructores y destructores en las clases derivadas Herencia public, protected y private Ingenierta de software mediante la herencia Repaso Programacién orientada a objetos: polimorfismo Introduccion Ejemplos de polimorfismo Relaciones entre los objetos en una jerarquia de herencia 13.3.1 Invocacién de funciones de la clase base desde objetos de una clase devivada 133.2 Cémo orienta los apuntadores de una clase derivada a objec de a clase base 13.33. Llamadas a funciones micmbro de una clase derivada a aavés de apuntadores de la clase base 13.34 Funciones viules 133.5 _ Resumen dela aignaciones permitidas entre objets y apuntadores de la case base y dela clase derivada Tipos de campos ¢instrucciones switch Clase abscractasy funciones virtual puras Ejemplo prictco: sistema de némina mediante el uso de polimorfismo 13.6.1 Creacién de la clase base abstracta Empleado 13.62 Creacién de la clase derivada concreta Empleadoasalariado 13.6.3 Creacién de la clase derivada concreta EmpleadoPorHoras 13.64 Creacién de la clase derivada concreta EnpleadoPorConi sion 13.65. Creacién de la clase derivada concretaindiecta EmpleadoBaseMasCom’ sion 13.6.6 Demostracién del procesamiento polimérfico (Opcional Polimorfismo, Funcionesvirtuales y vinculacién dindmica“detris de as cimaras” Ejemplo préctico: sistema de némina mediante el uso de polimorfismo e informacin de tipos en tiempo de ejecucidn con conversin descendente, dynanic_cast, typeid y type_info Destructores vireuales (Opcional) Bjemplo prictco de Ingenieria de Software: incorporacién de a herencia en el sistema ATM Repaso 491 492 502 502 313 514 518 521 524 535 536 537 539 539 544 549 53 559 566 573 373, 574 579 580 581 582. 583, 589 590 591 596 597 597 599 600. 603, 605 607 608. 610 oa 67 20 620 ar 4 14 42 143, 144 145 146 47 48 49 15 15. 152 153 154 155 136 157 158 15.9 15.10 16 16.1 16.2 163 16.4 165 166 167 168 169) Contenido Plantillas Incroduccién. Planuillas de funciones Sobrecarga de plancillas de funciones Planuillas de clases Parmetros sn tipo y tipos predeterminados para las plantillas de clases [Notas acerea de las plantillas y la herencia Notas acerea de las plantillas y funciones friend Notas acerca de las plantillas y miembros static Repaso Entrada y salida de flujos Incroduccion. Flujos 15.2.1 Comparacién entre Flujos cisios y flujos estindar 15.22 Archivos de encaberado de la biblioteca Yostream 15.23. Clases y objetos de entrada/salida de flujos Salida de flujos, 15.3.1 Salida de variables char * 15.3.2. Salida de caracteres mediante la funcién miembro put Entrada de Flujos 15.4.1 Funciones miembro get y get] ine 15.4.2 Funciones miembro peek, putback e ignore de istream 15.43 _F/S con seguridad de tipos JS sin formato mediante el uso de read, write y gcount alos manipuladores de flujos 15.6.1 Base de flujos integrals: dec, oct, hex y setbase 15.6.2 Precision de punto flotante (precision, setprecision) 15.63. Anchura de campos (width, setw) 15.64 Manipuladores de flujs de sla definidos por el usuario Estados de formato de flujo y manipuladores de flujos 15.7.1 Cerosa la derecha y puntos decimales (showpoint) Justificactn (Iefe, right e internal) Relleno de caraceres (F111, setfi71) Base de Flujosintegrales (dec, oct, hex, showbase) Niimeros de punto flotante: notacién cienificay Bja (scientific, Fixed) Control de maytisculas/minisculas (uppercase) Especificaciin de formato booleano (boo1apha) 15.7.8 Establecer y restablecer el estado de formato mediante l funcién miembro lags Exados de eror de los flujos Enlazar un flujo de salida a un flujo de entrada Repaso Manejo de excepciones Invroduecin GGeneraldades acerca del manejo de exepciones jemplo: manejo de un inreno de dviicenre cero Guincho wtilar el manejo de exepclones Vole a lanar una excepeion Especificaciones de excepciones Proossamiemo de exepeionesinespeadan Limpieea de pil CGonstrutoes, destractoeesy manejo de excepeones 631 632. 632 635 636 641 642 642 643 643, 648 682 683, 684 684 689 690 691 692 692, 694 16.10 16.11 16.12 16.13 16.14 16.15 17 11 172 173 174 175 176 177 178 179 17.10 7. 18 181 182 183 134 185 186 187 188 189 18:10 181 18:12 18.13, 19 19.1 19.2 193 194 20 20.1 202 Contenido Excepciones y herencia Procesamiento de ls falas de new Lacdase auto_ptr y la asignacién dinamica de memoria Jerarquia de excepciones de la Biblioteca estindar Orras een Repaso Procesamiento de archivos Introduccién Jerarquia de datos “Archivos y Flujos Greacién de un archivo secuencial (Cémo leer datos de un archivo secuencial ‘Actualizacién de archivos secuenciales, ‘Archivos de acceso aleatorio Creacién de un archivo de acceso aleatorio (Cémo escribir datos al azar un archivo de acceso aleatorio (Cémo leer de un archivo de acceso aleatorio en forma secuencial Ejemplo prictico: un programa para procesar transacciones Generalidades acerea de la seralizacién de objetos Repaso La clase string y el procesamiento de flujos de cadena Ineroducién ‘Asignacién y concatenacién de objets string Comparacién de abjetos string Subeadenas Taercambio de objetos sting Caracteristicas de ls objetos string Bisqueda de subcadenasy caractresen un objet string Reemplazo de caracteres en un objeto string Insercidn de caracteres en un objeto string Conversn a cadenas estilo C Teeradores Procesamiento de flujos de cadena Repaso, Busqueda y ordenamiento Introduccién: ‘Algorimos de bisqueda 192.1 Efcencia dea bisqueda lineal 1922 Bisque binaca Algortms de ordenamieato 19.3.1 Eficiencia del ordenamiento por seleccién 193.2 _Efciencia del ondenamiento por insercin 193.3 Ordenamienco por combinaion (una implementacin recurve Repaso Estructuras de datos Introduccién, (Clases autorreferenciadas 694 694 698, 700 701 702 708 709 709 71 712 715 720 721 m2 726 78 730 2s 736 745 746 747 749 751 752 752 754 756, 758 758 760 761 764 769 770 770 7m 776 776 7 7 783, 788 789

You might also like