Un programa tradicional se compone de procedimientos y de datos. Un programa orientado a objetos consiste solamente en objetos, entendiendo por objeto una entidad que tiene unos atributos particulares, los datos, y unas formas de operar so- bre ellos, los métodos o procedimientos. La programación orientada a objetos es una de las técnicas más modernas que trata de disminuir el coste del software, aumentando la eficiencia en la pro- gramación y reduciendo el tiempo necesario para el desarrollo de una aplicación. Con la programación orientada a objetos, los programas tienen menos líneas de código, menos sentencias de bifurcación y módulos que son más comprensibles porque reflejan de una forma clara la relación existente entre cada concepto a desarrollar y cada objeto que interviene en dicho desarrollo.

Donde la programación orientada a objetos toma verdadera ventaja es en la compartición y reutilización del código. Sin embargo, no debe pensarse que la programación orientada a objetos resuelve todos los problemas de una forma sencilla y rápida. Para conseguir buenos resultados, es preciso dedicar un tiempo significativamente superior al análisis y al diseño. Pero, éste no es un tiempo perdido, ya que simplificará enormemente la realización de aplicaciones futuras. Según lo expuesto, las ventajas de la programación orientada a objetos son sustanciales.

No obstante, también presenta inconvenientes; por ejemplo, la ejecu- ción de un programa no gana en velocidad y obliga al usuario a aprenderse una amplia biblioteca de clases antes de empezar a manipular un lenguaje orientado a objetos. Existen varios lenguajes que permiten escribir un programa orientado a objetos y entre ellos se encuentra C++. Se trata de un lenguaje de programación basa- do en el lenguaje C, estandarizado (véase el apéndice A), revisado y ampliamente difundido.

Gracias a esta estandarización y a la biblioteca estándar, C++ se ha convertido en un lenguaje potente, eficiente y seguro, características que han hecho de C++ un lenguaje universal de propósito general ampliamente utilizado, tanto en el ámbito profesional como en el educativo, y competitivo frente a otros lenguajes como C# de Microsoft o Java de Oracle. Evidentemente, algunas nuevas características que se han incorporado a C# o a Java no están soportadas en la actualidad, como es el caso de la recolección de basura; no obstante, existen elementos suficientes en la biblioteca C++ que resuelven este problema.

Otro futuro desarrollo previsto es la ampliación de la biblioteca estándar para desarrollar aplicaciones con interfaz gráfica de usuario. El libro, en su totalidad, está dedicado al aprendizaje de la programación orientada a objetos y al desarrollo de aplicaciones. Por lo tanto, se supone que si usted ha elegido este libro es porque ya posee conocimientos del lenguaje C. Si no fuera así, quizás debiera empezar por leerse C/C++ – Curso de programación, o bien elegir uno que incluya ambas partes, lenguaje C/C++ y programación orientada a objetos, como sucede con la Enciclopedia de C++, ambos escritos también por mi. Todos los temas tratados en el libro se han documentado con abundantes problemas resueltos.