C++ Introducción
C++ es un lenguaje de programación de tipo estático, compilado, de propósito general, sensible a mayúsculas y minúsculas e irregular, que admite programación procedural, programación orientada a objetos y programación genérica.
Se considera que C++ es unnivel intermediolenguaje, que combina las características de los lenguajes de alto nivel y de bajo nivel.
C++ fue comenzado a diseñar y desarrollar por Bjarne Stroustrup en 1979 en los Laboratorios Bell de Murray Hill, Nueva Jersey, ampliando y perfeccionando el lenguaje C. Inicialmente se llamó 'C conclases'., más tarde, en 1983, pasó a llamarse C++.
C++ es un superconjunto de C; de hecho, cualquier programa válido en C también es un programa válido en C++.

Nota:Los lenguajes de programación de tipo estático realizan la verificación de tipos en tiempo de compilación, no en tiempo de ejecución.
Programación orientada a objetos
C++ es totalmente compatible con la programación orientada a objetos, incluidas las cuatro características principales del desarrollo orientado a objetos:
Encapsulamiento (Encapsulation): El encapsulamiento consiste en combinar datos y métodos, ocultar los detalles de implementación al exterior y solo exponer las interfaces proporcionadas. Esto mejora la seguridad, la fiabilidad y la flexibilidad.
Herencia (Inheritance): La herencia consiste en derivar nuevas clases de clases existentes; las nuevas clases tienen los atributos y métodos de las clases existentes y pueden ampliarlos o modificarlos. Esto mejora la reutilización y la extensibilidad del código.
Polimorfismo (Polymorphism): El polimorfismo se refiere a que la misma operación, aplicada a diferentes objetos, puede tener diferentes interpretaciones e implementaciones. Se puede lograr mediante interfaces o herencia, y mejora la flexibilidad y la legibilidad del código.
Abstracción (Abstraction): La abstracción consiste en extraer características comunes de instancias concretas para formar clases o interfaces abstractas, facilitando la reutilización y extensión del código. Las clases e interfaces abstractas permiten a los programadores centrarse en el diseño de alto nivel y la lógica de negocio, sin tener que preocuparse por los detalles de implementación de bajo nivel.
Biblioteca estándar
El C++ estándar consta de tres partes importantes:
- El núcleo del lenguaje, que proporciona todos los bloques de construcción, incluyendo variables, tipos de datos y constantes, etc.
- La biblioteca estándar de C++, que proporciona una gran cantidad de funciones para manipular archivos, cadenas, etc.
- La Biblioteca de Plantillas Estándar (STL, por sus siglas en inglés), que proporciona una gran cantidad de métodos para manipular estructuras de datos, etc.
Estándar ANSI
El estándar ANSI existe para garantizar la portabilidad de C++: el código que usted escriba pueda compilarse en computadoras Mac, UNIX, Windows y Alpha.
Debido a que el estándar ANSI se ha utilizado de manera estable durante mucho tiempo, todos los principales fabricantes de compiladores de C++ lo admiten.
Aprender C++
Para aprender C++, lo clave es comprender los conceptos, y no se debe profundizar demasiado en los detalles técnicos del lenguaje.
El propósito de aprender un lenguaje de programación es convertirse en un mejor programador, es decir, poder diseñar e implementar nuevos sistemas de manera más eficiente, así como mantener sistemas antiguos.
C++ admite múltiples estilos de programación. Usted puede escribir código utilizando el estilo de programación de cualquier lenguaje, como Fortran, C, Smalltalk, etc. Cada estilo puede garantizar eficazmente la eficiencia en tiempo de ejecución y en espacio.
Usos de C++
El lenguaje C++ se utiliza ampliamente en muchas industrias y campos, incluyendo:
Desarrollo de juegos: C++ es uno de los lenguajes de programación más utilizados en el desarrollo de juegos, debido a su alto rendimiento y su capacidad para controlar directamente el hardware. Muchos motores de juegos importantes, como Unreal Engine y Unity, están escritos en C++.
Desarrollo de sistemas embebidos: C++ puede desempeñar un papel importante en sistemas embebidos, como teléfonos inteligentes, automóviles, robots y electrodomésticos. Dado que los sistemas embebidos suelen tener estrictas limitaciones de recursos y requisitos de tiempo real, el alto rendimiento y el control de memoria de C++ son muy útiles.
Sector financiero: C++ se utiliza ampliamente en el ámbito financiero, como en el comercio de alta frecuencia, el comercio algorítmico y la gestión de riesgos. Debido a que estas aplicaciones requieren un alto rendimiento y un control directo del hardware, C++ es una opción adecuada.
Procesamiento de gráficos e imágenes: C++ se puede utilizar para desarrollar aplicaciones de procesamiento de gráficos e imágenes, como en los campos de visión por computadora, gráficos por computadora e inteligencia artificial. Dado que estas aplicaciones requieren una alta capacidad de cálculo y control del hardware, C++ es una excelente opción.
Cálculo científico y análisis numérico: C++ se puede utilizar para desarrollar aplicaciones de cálculo científico y análisis numérico, como simulación numérica y computación de alto rendimiento. Dado que estas aplicaciones requieren una alta capacidad de cálculo y un control directo del hardware, C++ es una excelente opción.
Estandarización
| Fecha de publicación | Denominación común | Observaciones |
|---|---|---|
| 2020 | C++20, C++2a | ISO/IEC 14882:2020 |
| 2017 | C++17 | Quinto estándar de C++ |
| 2017 | coroutines TS | Extensión de la biblioteca de corrutinas |
| 2017 | ranges TS | Proporciona mecanismo de rangos |
| 2017 | library fundamentals TS | Extensión de la biblioteca estándar |
| 2016 | concurrency TS | Extensión para computación concurrente |
| 2015 | concepts TS | Biblioteca de conceptos, para optimizar la información en tiempo de compilación |
| 2015 | TM TS | Operaciones de memoria transaccional |
| 2015 | parallelism TS | Extensión para computación paralela |
| 2015 | filesystem TS | Sistema de archivos |
| 2014 | C++14 | Cuarto estándar de C++ |
| 2011 | - | Extensión de números de punto flotante decimales |
| 2011 | C++11 | Tercer estándar de C++ |
| 2010 | - | Extensión de funciones matemáticas |
| 2007 | C++TR1 | Informe técnico de C++: extensiones de biblioteca |
| 2006 | - | Informe técnico de rendimiento de C++ |
| 2003 | C++03 | Segundo estándar de C++ |
| 1998 | C++98 | Primer estándar de C++ |