




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Llenguatges de programació, Profesor: , Carrera: Enginyeria Informàtica, Universidad: UAB
Tipo: Apuntes
1 / 576
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































i “Volumen1_tmp” — 2009/1/4 — 2:01 — page I — #1 (^) i
i i
4 de enero de 2009
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 “Volumen1_tmp” — 2009/1/4 — 2:01 — page II — #2 (^) i
i i
Pensar en C++ (Volumen 1) by Bruce Eckel Copyright © 2000 Bruce Eckel
II
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page IV — #4 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page V — #5 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page VII — #7 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page VIII — #8 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page X — #10 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XI — #11 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XIII — #13 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XIV — #14 (^) i
i i
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XVI — #16 (^) i
i i
Índice general
B. Directrices de Programación 527
C. Lecturas recomendadas 537 C.1. Sobre C..................................... 537 C.2. Sobre C++ en general............................. 537 C.2.1. Mi propia lista de libros....................... 537 C.3. Los rincones oscuros............................. 538 C.4. Sobre Análisis y Diseño........................... 539
XVI
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XVII — #17 (^) i
i i
3. C en C++ 3.1. Expresiones que utilizan booleanos..................... 77 3.2. Moldes explícitos de C++.......................... 105 3.3. Nuevas palabras reservadas para operadores booleanos......... 109 12. Sobrecarga de operadores 12.1. Directrices para elegir entre miembro y no-miembro........... 357
XVII
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XIX — #19 (^) i
i i
Este trabajo de traducción ha sido realizado íntegramente por voluntarios. Le agradecemos que nos comunique cualquier error de traducción o transcripción en el texto. También será bienvenido si desea colaborar más activamente en la traducción. Puede encontrar información para ello en nuestra página web 1. Ayúdenos a hacer de esta traducción un trabajo de calidad. Tenga presente que el trabajo de traducción no ha terminado. Si utiliza el libro en el estado actual es probable que encuentre innumerables errores. Por favor, no nos los notifique por ahora. Le agradeceremos su colaboración para corregir posibles erratas cuando el trabajo se dé por terminado, pero ese momento aún no ha llegado (falta poco). Ello no implica que el libro no pueda serle útil en su estado actual. Este capítulo se actualiza frecuentemente y no lo daré por terminado hasta que concluya el proceso de traducción y revisión de este volumen al menos. La traduc- ción del Volumen 2 acaba de comenzar.
El equipo de traducción ha seguido al pié de la letra las directrices marcadas por Bruce Eckel (autor del libro original) para la realización de traducciones y dis- tribución de éstas. Si utiliza o distribuye este texto debe cumplirlas y advertir de su existencia a los posibles lectores. El equipo de traducción elude toda responsabili- dad por la violación -por parte de terceros- de las citadas directrices^2. Se incluyen a continuación respetando el idioma original (para evitar eventuales interpretaciones incorrectas): In my contract with the publisher, I maintain all electronic publishing rights to the book, including translation into foreign languages. This means that the publisher still handles negotiations for translations that are prin- ted (and I have nothing directly to do with that) but I may grant transla- tion rights for electronic versions of the book. I have been granting such rights for “open-source” style translation pro- jects. (Note that I still maintain the copyright on my material.) That is: You must provide a web site or other medium whereby people may participate in the project (two easy possibilities are http://www.egroups.com or http://www.topica.com). You must maintain a downloadable version of the partially or fully translated version of the book. (^1) http://arco.esi.uclm.es/~david.villa/pensarC++.html (^2) El texto original de estas directrices está accesible en la página web del autor.
XIX
i “Volumen1_tmp” — 2009/1/4 — 2:01 — page XX — #20 (^) i
i i
Prólogo a la traducción
Someone must be responsible for the organization of the translation (I cannot be actively involved - I don’t have the time). There should only be one language translation project for each book. We don’t have the resources for a fork. As in an open-source project, there must be a way to pass responsi- bility to someone else if the first person becomes too busy. The book must be freely distributable. The book may be mirrored on other sites. Names of the translators should be included in the translated book.
El proyecto de traducción Si desea saber más sobre este proyecto visite http://arco.inf-cr.uclm.es/~david.villa/- pensarC++.html.
Tecnicismos Se han traducido la mayor parte de los términos específicos tanto de orientación a objetos como de programación en general. Para evitar confusiones o ambigüedades a los lectores que manejen literatura en inglés hemos incluido entre paréntesis el término original la primera vez que aparece traducido. Para traducir tecnicismos especialmente complicados hemos utilizado como refe- rencia la segunda edición de El lenguaje de Programación C++ (en castellano) así como la Wikipedia. En contadas ocasiones se ha mantenido el término original en inglés. En benefi- cio de la legibilidad, hemos preferido no hacer traducciones demasiado forzadas ni utilizar expresiones que pudieran resultar desconocidas en el argot o en los libros especializados disponibles en castellano. Nuestro propósito es tener un libro que pueda ser comprendido por hispano-hablantes. Es a todas luces imposible realizar una traducción rigurosa acorde con las normas lingüísticas de la RAE, puesto que, en algunos casos, el autor incluso utiliza palabras de su propia invención.
Código fuente Por hacer
Producción El texto ha sido escrito en el lenguaje de marcado DocBook versión 4.3 en su variante XML. Cada capítulo está contenido en un fichero independiente y todos ellos se incluyen en un fichero “maestro” utilizando XInclude. Debido a que muchos procesadores de DocBook no soportan adecuadamente la característica XInclude, se usa la herramienta xsltproc para generar un único fichero XML que contiene el texto de todo el libro. XX