Explicación del concepto
Esta lección introduce el rendimiento desde una perspectiva de C++ amigable para principiantes: no se trata de micro-optimización, sino de elegir estructuras simples que eviten el desperdicio y mantengan la seguridad. Trabajarás con un pequeño ejemplo que utiliza gestión automática de recursos, luego verás por qué ese estilo es generalmente más rápido y confiable que los patrones de asignación manual. El objetivo es notar cómo la propiedad, el ciclo de vida de los objetos y las interfaces limpias afectan tanto la velocidad como la mantenibilidad. Al final, deberías poder explicar por qué el C++ moderno prefiere el código basado en RAII y cómo esa elección ayuda en los programas cotidianos.
Dónde poner el código
- Comienza con variables y entradas. Mantén explícitos los `includes`, la función `main` y los tipos de datos.
- Agrega la lógica de procesamiento en la sección central.
- Termina con la salida y una validación rápida.
Referencia de comandos
- Compila y ejecuta el ejemplo, luego explica qué posee el entero y cuándo se libera.
- Reemplaza el valor almacenado con un segundo número y confirma que la salida cambia como se espera.
- Compara esta versión basada en RAII con una versión de puntero crudo y anota cuál es más fácil de entender.
- Escribe una razón concreta por la que el código C++ moderno a menudo prefiere la limpieza automática sobre `delete` manual.
Guía paso a paso
- Compila el programa una vez y confirma que imprime el valor almacenado correctamente.
- Identifica qué línea crea el recurso y qué parte del programa es responsable de la limpieza.
- Cambia el valor o el texto de salida, luego ejecuta de nuevo para verificar la edición.
- Describe en una oración por qué `std::make_unique` es más seguro que asignar manualmente para este caso.
- Termina con una breve lista de verificación: salida correcta, propiedad clara y sin código innecesario.
Ejercicios prácticos
- Crea un ejemplo similar que almacene el nivel de un jugador o un recuento de productos en lugar de una puntuación.
- Escribe una segunda versión con una función auxiliar que devuelva un puntero inteligente e imprime el resultado en `main`.
- Refactoriza el ejemplo para que los nombres de las variables describan los datos más claramente.
Retos de código
- Implementa tanto una versión con puntero crudo como una versión con `std::unique_ptr`, luego compara la legibilidad y el riesgo.
- Extiende el programa para que gestione dos valores y aún mantenga la propiedad clara y automática.
Mini tareas de práctica
- Renombra una variable para que su propósito sea obvio.
- Agrega una línea de impresión adicional que confirme que el programa se ejecutó correctamente.
- Escribe una nota de una línea sobre cómo RAII ayuda al rendimiento y la seguridad juntos.
Error común
Skipping input validation or mixing logic/output in one unstructured block.
Mini reto de la vida real
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.