Tabla de contenidos
Como cualquier lenguaje humano, C++ proporciona métodos para expresar conceptos. Si se utiliza de forma correcta, este medio de expresión será significativamente más sencillo y flexible que otras alternativas cuando los problemas aumentan en tamaño y complejidad.
No se puede ver C++ sólo como un conjunto de características, ya que algunas de esas características no tienen sentido por separado. Sólo se puede utilizar la suma de las partes si se está pensando en el diseño, no sólo en el código. Y para entender C++ de esta forma, se deben comprender los problemas existentes con C y con la programación en general. Este libro trata los problemas de programación, porque son problemas, y el enfoque que tiene C++ para solucionarlos. Además, el conjunto de características que explico en cada capítulo se basará en la forma en que yo veo un tipo de problema en particular y cómo resolverlo con el lenguaje. De esta forma espero llevar al lector, poco a poco, de entender C al punto en el que C++ se convierta en su propia lengua.
Durante todo el libro, mi actitud será pensar que el lector desea construir en su cabeza un modelo que le permita comprender el lenguaje bajando hasta sus raíces; si se tropieza con un rompecabezas, será capaz de compararlo con su modelo mental y deducir la respuesta. Trataré de comunicarle las percepciones que han reorientado mi cerebro para «Pensar en C++».
Este libro es una minuciosa reescritura de la primera edición para reflejar todos los cambios que han aparecido en C++ tras la finalización del estándar que lo rige, y también para reflejar lo que he aprendido desde que escribí la primera edición. He examinado y reescrito el texto completo, en ocasiones quitando viejos ejemplos, a veces cambiándolos, y también añadiendo muchos ejercicios nuevos. La reorganización y reordenación del material tuvo lugar para reflejar la disponibilidad de mejores herramientas, así como mi mejor comprensión de cómo la gente aprende C++. He añadido un nuevo capítulo, como introducción al resto del libro, una introducción rápida a los conceptos de C y a las características básicas de C++ para aquellos que no tienen experiencia en C. El CD-ROM incluido al final del libro en la edición en papel contiene un seminario: una introducción aún más ligera a los conceptos de C necesarios para comprender C++ (o Java). Chuck Allison lo escribió para mi empresa (MindView, Inc.), y se llama «Pensar en C: conceptos básicos de Java y C++». Presenta los aspectos de C que necesita conocer para poder cambiar a C++ o Java, abandonando los desagradables bits de bajo nivel con los que los programadores de C tratan a diario, pero que lenguajes como C++ y Java mantienen lejos (o incluso eliminan, en el caso de Java).
Así que la respuesta corta a la pregunta «¿Qué es diferente en la segunda edición?» sería que aquello que no es completamente nuevo se ha reescrito, a veces hasta el punto en el que no podría reconocer los ejemplos y el material original de la primera edición.
Con la conclusión del estándar de C++ también se añadieron algunas importantes bibliotecas nuevas, tales como string y los contenedores, y algoritmos de la Librería Estándar C++, y también se ha añadido complejidad a las plantillas. Éstos y otros temas más avanzados se han relegado al volumen 2 de este libro, incluyendo asuntos como la herencia múltiple, el manejo de excepciones, patrones de diseño, y material sobre la creación y depuración de sistemas estables.
Del mismo modo que el libro que lee en estos momentos, Pensar en C++, Volumen 2 se puede descargar desde mi sitio web www.BruceEckel.com. Puede encontrar información en el sitio web sobre la fecha prevista para la impresión del Volumen 2.
El sitio web también contiene el código fuente de los listados para ambos libros, junto con actualizaciones e información sobre otros seminarios en CD-ROM que ofrece MidView Inc., seminarios públicos y formación interna, consultas, soporte y asistentes paso a paso.