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).
  • 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.