Ir al contenido
Módulo 3

Memoria y Recursos

Domina el modelo de propiedad de C++ — desde punteros crudos hasta punteros inteligentes y semantica de movimiento — para escribir codigo que nunca tiene fugas.

Punteros y Referencias

  1. Punteros: Direcciones, Desreferencia y Aritmetica

    Comprende los punteros como direcciones de memoria, aprende los operadores de direccion y desreferencia, la aritmetica de punteros dentro de arrays, la correccion const con punteros, y cuando los punteros crudos aun son apropiados en C++ moderno.

  2. Referencias: Lvalue, Rvalue y Trampas

    Explora las referencias lvalue y rvalue, comprende las categorias de valor de C++, aprende las reglas de colapso de referencias y las referencias de reenvio, y evita los errores de referencias colgantes.

  3. Memoria Dinamica: new, delete y Sus Peligros

    Aprende como funciona la asignacion dinamica con new y delete, comprende los peligros de las fugas de memoria, doble liberacion y uso despues de liberar, y descubre por que el C++ moderno no deberia contener ningun new/delete crudo.

Punteros Inteligentes (Smart Pointers)

  1. std::unique_ptr: Propiedad Exclusiva

    Aprende como std::unique_ptr proporciona propiedad exclusiva sin sobrecarga, como usar make_unique, deleters personalizados para recursos C, y patrones de funciones fabrica.

  2. shared_ptr, weak_ptr y Grafos de Propiedad

    Comprende la propiedad compartida con conteo de referencias con shared_ptr, rompe ciclos con weak_ptr, aprende sobre bloques de control y aliasing, y sabe cuando shared_ptr es la eleccion incorrecta.

Semantica de Movimiento y RAII

  1. Semantica de Movimiento: Transferencia de Recursos sin Copia

    Domina la semantica de movimiento de C++11 — constructores de movimiento, asignacion por movimiento, std::move, y por que el movimiento deja los objetos en un estado valido-pero-no-especificado.

  2. RAII y la Regla de Cero/Cinco

    Comprende RAII (la Adquisicion de Recursos Es Inicializacion) como el patron central de gestion de recursos de C++, la Regla de Cinco para clases que gestionan recursos, y la Regla de Cero para el resto.

  3. Reenvio Perfecto y std::forward

    Comprende por que las funciones wrapper pierden la categoria de valor, como std::forward la preserva, y el patron idiomatico de reenvio perfecto para plantillas.

Disposicion de Memoria

  1. Alineacion, Padding y Lineas de Cache

    Comprende los requisitos de alineacion de tipos, el padding de structs, las lineas de cache, el false sharing (comparticion falsa), los bit fields y [[no_unique_address]].