Introducción al lenguaje C++
El lenguaje C++ fue creado por Bjarne Stroustrup a principios de los años 80 en los laboratorios Bell. C++ puede verse como un superconjunto de C, ya que conserva su velocidad, eficiencia, facilidad de comunicación con el hardware, y muchas otras de sus características y agrega soporte al paradigma de programación orientado a objetos. Este lenguaje fue creado con el objetivo de resolver algunas simulaciones dirigidas por sucesos muy rigurosas que no hubieran sido posibles en otros lenguajes debido a la eficiencia de la cual se caracterizaba C.
Ventajas de C++
Soporte del paradigma orientado a objetos: Una de las ventajas más notables de C++ es el soporte sobre la programación orientada a objetos. Las posibilidad de pensar un problema en términos de una clase, propiedades y mensajes enviados a cada objeto.
Constructores de clase y encapsulamiento de datos: El elemento más importante y vehículo de la programación orientada a objetos son los constructores de clase que permiten encapsular las declaraciones de datos, valores iniciales y el conjunto de operaciones sobre una clase.
Constructores y destructores: C++ proporciona métodos constructores y destructores para garantizar la inicialización y desasignación de variables y recursos.
Mensajes: Los mensajes o acciones son la interfaz de comunicación con los objetos. Permiten realizar las acciones definidas en la clase.
Amigos: C++ permite definir un tipo de funciones especiales que son amigas de una clase específica. Esto permite acceder a propiedades y métodos privados que están fuera del alcance de cualquier otra función externa.
Sobrecarga de operadores: En C++ es posible definir funciones con el mismo nombre pero con distinto tipo de parámetros. Esto es debido a que ciertas funciones pueden realizar acciones similares sobre distintos tipos de objetos.
Clases derivadas: En C++ las clases derivadas heredan todos o algunos métodos de la clase padre, así como también sus miembros públicos y protegidos, más no los privados. Las clases derivadas pueden definir métodos propios también.
Desventajas de C++
Garbage collector: Al igual que C, C++ no dispone de un recolector de basura para limpiar la memoria de variables u otros obejtos utilizados en la ejecución del programa.
Sintácticamente estricto: No hay mucha flexibilidad al escribir programas en C++ lo cuál puede hacer que a veces sea difícil entender el código.
Problemas de seguridad: C++ puede pasar ciertos errores desapercibidos igual que C en cuanto a la asignación de valores en memoria. Esto hace que los programas puedan corromper otros datos utilizados por ellos mismos.
GUI y Red: El acceso a herramientas de interfaz de usuario y red no está estandarizado por lo cuál debe recurrirse a librerías de terceros muchas veces sin garantizar interoperabilidad.
Cuándo utilizar C++
Es recomendable utilizar C++ en proyectos en los cuáles el performance es realmente un punto clave. C++ es actualmente preferido para el desarrollo de videojuegos, herramientas de red, herramientas de shell en UNIX, así como programas multipropósito en plataforma.