Este capítulo intenta darle una idea de las cuestiones generales de la programación orientada a objetos y C++, incluyendo por qué la POO es diferente, y por qué C++ en particular es diferente, conceptos de metodología de POO, y finalmente los tipos de cuestiones que encontrará cuando cambie su propia compañía a POO y C++.
La POO y C++ pueden no ser para todos. Es importante evaluar sus necesidades y decidir si C++ satisfará de forma óptima sus necesidades, o si le iría mejor con otro sistema de programación (incluido el que utiliza actualmente). Si sabe que sus necesidades serán muy especializadas en un futuro previsible y tiene restricciones específicas que no se pueden satisfacer con C++, entonces debe investigar otras alternativas [34]. Incluso si finalmente elige C++ como su lenguaje, por lo menos entenderá qué opciones había y tendrá una visión clara de por qué tomó esa dirección.
El lector conoce el aspecto de un programa procedural: definiciones de datos y llamadas a funciones. Para encontrar el significado de un programa tiene que trabajar un poco, revisando las llamadas a función y los conceptos de bajo nivel para crear un modelo en su mente. Ésta es la razón por la que se necesitan representaciones intermedias cuando se diseñan programas procedurales: por sí mismos, estos programas tienden a ser confusos porque los términos de expresión están orientados más hacia el computador que hacia el problema que se está resolviendo.
Como C++ añade muchos conceptos nuevos al lenguaje C, puede que su asunción natural sea que el main() en un programa de C++ será mucho más complicado que el equivalente del programa en C. En eso, quedará gratamente sorprendido: un programa C++ bien escrito es generalmente mucho más simple y mucho más sencillo de entender que el programa equivalente en C. Lo que verá son las definiciones de los objetos que representan conceptos en el espacio de su problema (en lugar de cuestiones de la representación en el computador) y mensajes enviados a esos objetos para representar las actividades en este espacio. Uno de los placeres de la programación orientada a objetos es que, con un programa bien diseñado, es fácil entender el código leyéndolo. Normalmente también hay mucho menos código, porque muchos de sus problemas se resolverán utilizando código de librerías existentes.