Introducción a C++ moderno
- C++ es un lenguaje de programación de propósito general.
- Fue creado por Bjarne Stroustrup en 1983, como una extensión del lenguaje C.
- Combina la eficiencia y control de bajo nivel de C con características modernas como la programación orientada a objetos.
Breve historia y evolución
- En 1972, se crea el lenguaje C (Dennis Ritchie) en los laboratorios Bell.
- En 1983, C with Classes se convierte en C++, introduciendo clases y objetos.
- En 1998, C++98: primer estándar oficial, incluye STL (Standard Template Library).
- En 2003, C++03: revisión menor, mejoras en portabilidad y corrección de errores.
- A partir de 2011 van saliendo distintas versiones con nuevas funcionalidades que es lo que denominamos C++ moderno: C++11, C++14, C++17, C++20, C++23,…
- C++ sigue evolucionando activamente, manteniendo la compatibilidad con el código antiguo y al mismo tiempo incorporando nuevas ideas.
Características de C++
- Compilado: se traduce a código máquina antes de ejecutarse.
- Eficiente: permite controlar la memoria y los recursos del sistema.
- Multiparadigma: permite varios estilos de programación:
- Procedimental (C clásico)
- Orientado a objetos
- Genérico (con plantillas)
- Funcional (desde C++11 en adelante)
- Multiplataforma: se puede compilar y ejecutar en distintas plataformas.
- Moderno: desde C++11, el lenguaje incluye muchas características para mejorar la legibilidad, seguridad y productividad.
¿Qué es C++ moderno?
-
Se refiere a las versiones más recientes del lenguaje, a partir de C++11.
-
Introduce mejoras significativas en sintaxis, seguridad, rendimiento y estilo de programación.
-
Las características claves de C++ moderno:
- Gestión de recursos:
std::unique_ptr,std::shared_ptr. - Sintaxis simplificada: Inicialización uniforme (
{}),auto. - Funciones avanzadas: Lambdas,
constexpr, funciones inline. - Contenedores y algoritmos:
std::vector,std::array,std::map,std::sort. - Seguridad de tipos:
enum class,nullptr, eliminación de funciones. - Paralelismo y concurrencia:
std::thread,std::async(C++11+), corutinas (C++20). - Programación genérica más potente:
template<typename T>,concepts(C++20).
- Gestión de recursos:
-
C++ moderno permite escribir código más claro, más seguro y más mantenible, sin perder la eficiencia característica del lenguaje.
¿Por qué aprender C++ hoy?
- Base de muchos sistemas: se usa en sistemas operativos, motores gráficos, bases de datos, navegadores…
- Lenguaje de alto rendimiento: ideal para tareas donde los recursos son limitados.
- Dominio de conceptos clave: punteros, memoria, tipos, eficiencia, etc.
- Versatilidad: se adapta tanto a sistemas embebidos como a software de alto nivel.
- Conocimiento fundamental: dominar C++ te da una base sólida para aprender otros lenguajes.