[TCC-040] Programación Avanzada con C++
- Pronoide Wiki Web
Este curso cubre conceptos clave como C++11 y C++14, la Standard Template Library (STL), tipos avanzados, expresiones lambda, punteros inteligentes, multihilos, sincronización y metaprogramación. Se profundiza en el uso de templates, smart pointers, y técnicas de programación paralela como async, future y promise.
Duración: 20 horas
Perfil: Avanzado
Dirigido a
Esta acción formativa va dirigida a programadores C++que quieran utilizar las nuevas características del lenguaje C++ introducidas en las versiones C++11 y C++14.
Requisitos previos
Los alumnos necesitarán tener experiencia con el lenguaje de programación C++, así como los conceptos de orientación a objetos.
Objetivos
- Dominar las características de C++11 y C++14.
- Utilizar la Standard Template Library (STL) para mejorar la eficiencia y flexibilidad del código.
- Aplicar técnicas avanzadas de multihilos, sincronización y programación paralela.
- Gestión de memoria con punteros inteligentes y entender los conceptos de smart pointers.
- Explorar la metaprogramación y las plantillas en C++.
Contenido
Introducción a C++11 y C++14
- Características destacadas de C++11 y C++14
- Nuevas funcionalidades y mejoras en el lenguaje
Standard Template Library (STL)
- Introducción a la STL
- Uso de colecciones (vectores, listas, mapas)
- Iteradores y su funcionamiento
- Algoritmos comunes de la STL
- Generación y manejo de números aleatorios
Tipos en C++11 y C++14
- Nuevos tipos y mejoras en C++11/14
- Conversión de tipos (casting) y tipos numerados (enum)
- Uso de
typedef
y clases enumeradas (enum class
) - Introducción y aplicación del tipo
auto
- Cadenas literales (Raw Strings) y su utilidad
Expresiones Lambda
- Sintaxis básica de expresiones lambda
- Lambdas anidadas y punteros a funciones lambda
- Uso de expresiones lambda para simplificar el código
Programación Concurrente (MultiThreading)
- Conceptos de multihilos y programación paralela
- Uso de
std::thread
y sincronización (mutex, lock) - Funciones
future
,promise
yasync
para manejo de hilos packaged_task
y su relación con hilos
Punteros Inteligentes (Smart Pointers)
- Introducción a punteros inteligentes en C++
- Diferencias entre
auto_ptr
,shared_ptr
,weak_ptr
yunique_ptr
- Uso adecuado de punteros inteligentes para gestionar la memoria
Plantillas y Metaprogramación
- Funciones y clases con templates
- Especialización de templates para casos específicos
- Introducción a la metaprogramación en C+
- Técnicas de programación avanzada utilizando templates
Documentación Recomendada
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Scott Meyer
Diciembre 2014 | 336 páginas
ISBN: 9781491903995