Diferencia entre revisiones de «Introducción a Patrones de Diseño en C++ con Qt4:Prefacio»

Contenido eliminado Contenido añadido
Línea 1:
=Prefacio=
 
C++ ha fue usado muchos años antes de ser estandarizado en 1989, lo cual lo convierte en un lenguaje relativamente maduro comparado con otros que son populares hoy en día. Es un lenguaje muy importante para construir sistemas rápidos, eficiente, misiones críticas. C++ es tambientambién uno de los más flexibles lenguajes de los alrededores, dando a los desarrolladores muchas elecciones de estilos de programación para usar en códigos GUI de alto nivel así como en controladores de dispositivo de bajo nivel.
 
Por algunos años en la década de los 90, C++ fue el más popular lenguaje orientado a objetos (OO) en uso, y muchos estudiantes de ciencias de la computación(CS) fueron introducidos a la ProggramaciónProgramación Orientada a Objetos(OOP) por medio de C++. Esto es debido a que C++ proporcionó una relativamente fácil transición a OOP para los programadores de C, y muchos profesores de CS habían sido adiestrados previamente en C.
 
StartingComenzando aroundalrededor de 1996, Java gainedganó favor overpor encima de C++ ascomo theel firstlenguaje OO languageprincipal forpara studentsla toenseñanza learnde los estudiantes. ThereHay areun abuen numbernúmero ofde reasonsrazones thatpor las que Java gainedha soganado muchesa popularity.popularidad:
 
*
 
* El Lenguaje en mismo Thees languagemás itselfsimple is simpler thanque C++.
* El lenguaje tiene un recolector de basura incorporado, por ello los programadores no necesitan preocuparse por sí mismos de la reasignación de memoria.
*
* Un juego estándar de clases GUI es incluida en el kit de desarrollo.
* La clase String incorporada soporta Unicode.
* Multithreading está incorporada dentro del lenguaje.
* Es mas sencillo construir y "conectar" archivos Java (JARs) de lo que es recompilar y reenlazar librerías.
* Muchos servidores web proporcionan APIs de Java para una sencilla integración.
* Los programas Java son independientes Java programs arede platformla independentplataforma (Wintel, Solaris, MacOS, Linux, *nix, etc.).
 
The language has built-in garbage collection, so programmers do not need to concern themselves with memory de-allocation.
*
 
Muchos de los beneficios de Java listados arriba pueden ser logrados con C++ usado en conjunción con Qt 4:
A standard set of GUI classes is included in the development kit.
*
 
The built-in String class supports Unicode.
*
 
* Qt proporciona un comprensible juego de clases GUI que corren más rápido, se ven mejor y son mucho más flexibles que las clases Swing de Java.
Multithreading is built into the language.
* Señales y slots son mucho más fáciles de usar que las interfaces (Action|Event|Key)Listener en Java.
*
* Qt 4 tiene una arquitectura de conexiones que haga posible cargar código dentro de una aplicación sin recompilar o reenlazar.
* Qt 4 proporciona foreach, que hace la interacción a través de colecciones simple de leer y escribir.
 
It is easier to build and “plug in” Java Archives (JARs) than it is to recompile and relink libraries.
*
 
Aunque Qt no proporciona una colección de recolectores, hay una varidedad de alternativas que se pueden utilizar para evitar la necesidad de borrar cada objeto directamente:
Many Web servers provide Java APIs for easy integration.
*
 
Java programs are platform independent (Wintel, Solaris, MacOS, Linux, *nix, etc.).
 
# Contenedores (Ver [[Introducción a Patrones de Diseño en C++ con Qt4:10.2| Sección 10.2]])
Many of Java's benefits listed above can be achieved with C++ used in conjunction with Qt 4.
# Padres e Hijos (Ver [[Introducción a Patrones de Diseño en C++ con Qt4:9.2| Sección 9.2]])
# auto_ptr (Ver [[Introducción a Patrones de Diseño en C++ con Qt4:16.3.2| Sección 16.3.2]])
# [http://cartan.cas.suffolk.edu/qtdocs/qpointer.html| QPointer] (Ver [[Introducción a Patrones de Diseño en C++ con Qt4:18.9| Sección 18.9]]).
# Subobjetos (Ver [[Introducción a Patrones de Diseño en C++ con Qt4:2.13| Sección 2.13]])
# Objetos apilados (Ver [[Introducción a Patrones de Diseño en C++ con Qt4:19.3| Sección 19.3]])
 
*
 
Usando C++ con Qt se vuelve algo muy parecido a Java en facilidad de uso, comprensibilidad y conveniencia. Esto sobrepasa significativamente a Java en las áreas de velocidad y eficiencia, haciendo posible desde aplicaciones de servidor de procesamiento intensivo hasta juegos de gráficos intensivos a alta velocidad.
Qt provides a comprehensive set of GUI classes that run faster, look better, and are more flexible than Java's Swing classes.
*
 
Otro beneficio de aprender C++ con Qt viene del uso generalizado de QT en proyectos de código abierto. Esto es en realidad una gran riqueza de código abierto desde el cual puedes aprender, reusar y posiblemente ayudar a mejorar.
Signals and slots are easier to use than (Action|Event|Key)Listener interfaces in Java.
*
 
==Como usar este libro==
Qt 4 has a plugin architecture that makes it possible to load code into an application without recompiling or relinking.
*
 
La [[Introducción a Patrones de Diseño en C++ con Qt4:1| parte I]] contiene una introducción a C++, UML, y el núcleo Qt. Esta parte está diseñada para evitar seguir referenciando tanto como sea posible, y se presentar los tópicos en un orden y nivel de detalle que no debieran abrumar a quien es nuevo en C/C++.
Qt 4 provides foreach, which makes iteration through collections simpler to read and write.
 
En la [[Introducción a Patrones de Diseño en C++ con Qt4:2| parte II]], encontrarás ideas de programación de alto nivel, módulos Qt y patrones de diseño. Aquí es donde presentamos caminos de desplazamiento en paradigma de la escritura de código y reorganización de objetos en una moda modular.
Although Qt does not provide garbage collection, there are a variety of alternatives one can use, to avoid the need to delete heap objects directly.
 
Para complementación y referencia, la [[Introducción a Patrones de Diseño en C++ con Qt4:3| parte III]] cubre en mayor profundidad algunas "secas" pero importantes características de C++ que hemos introducido en la [[Introducción a Patrones de Diseño en C++ con Qt4:1| parte I]]. En el momento en que el lector haya alcanzado este punto, esas ideas deberían ser mucho más fáciles de entender.
1.
 
Al final de cada capítulo, encontrarás ejercicios y preguntas de revisión. La mayoría de los ejercicios de programación tienen soluciones disponibles en el Website. Para las preguntas, si las respuestas no se encuentran en el capítulo precedente, entonces a menudo habrá punteros señalando a donde las encontraremos. Si este libro es usado para un curso, estas preguntas deberían se hechas por el estudiante o por el profesor, en el salón de clases o en un examen.
Containers (see Section 10.2)
2.
 
==Una nota sobre los formatos==
Parents and children (see Section 9.2)
3.
 
Lo que estas leyendo es solo un número de las posibles variaciones disponibles. Esto es porque el documento fue escrito originalmente en XML usando un estilo de "programación literal", hemos generado una variedad de versiones diferentes (viñetas laterales, libros de texto paragrafiados, con o sin soluciones, etc.) en una variedad de formatos distintos (html, pdf, ps, htmlhelp).
auto_ptr (see Section 16.3.2)
4.
 
Cada ejemplo de programación es extraído desde el código fuente en trabajo. La versión web proporciona un enlace para cada código hacia su archivo fuente. Esto hace que sea sencillo probar los ejemplos por tí mismo. El texto y listas en la versión Web también contiene enlaces para cada librería de clase hacia su página de documentación.
QPointer (see Section 18.9).
5.
 
Subobjects (see Section 2.13)
6.
 
Stack objects (see Section 19.3)
 
Using C++ with Qt comes very close to Java in ease of use, comprehensiveness, and convenience. It significantly exceeds Java in the areas of speed and efficiency, making everything from processing-intensive server applications to high-speed graphics-intensive games possible.
 
Another benefit of learning C++ with Qt comes from Qt's widespread use in open-source projects. There is already a great wealth of free open-source code that you can learn from, reuse, and perhaps help to improve.
How to Use This Book
 
Part I contains an introduction to C++, UML, and the Qt core. This part is designed to avoid forward referencing as much as possible, and it presents the topics in an order and a level of detail that should not overwhelm someone who is new to C/C++.
 
In Part II, you will find higher-level programming ideas, Qt modules, and design patterns. Here we present paradigm-shifting ways of writing code and organizing objects in a modular fashion.
 
For completeness and for reference, Part III covers in more depth some of the “dry” but important C++ features that were introduced in Part I. By the time the reader has reached this point, these ideas should be a lot easier to understand.
 
At the end of each chapter, you will find exercises and review questions. Most of the programming exercises have solutions available on the Website. For the questions, if the answers are not in the preceding chapter, then often there are pointers on where to find them. If this book is used for a course, these questions could be asked by the student or by the teacher, in the classroom or on an exam.
 
A Note about Formats
 
What you are reading now is only one of a number of possible versions available. Because the document was originally written in XML, using a “literal programming” style, we can generate a variety of different versions (bulleted slides, paragraphed textbook, with or without solutions, etc.) in a variety of different formats (html, pdf, ps, htmlhelp).
 
Each programming example is extracted from working source code. The Web version provides a hyperlink from each code excerpt to its full source file. This makes it very easy to try the examples yourself. The text and listings in the Web version also contain hyperlinks from each library ClassName to its class documentation page.