Gestión Segura de Memoria Dinámica

C++Beginner
Practicar Ahora

Introducción

En este desafío, desarrollarás un pequeño sistema de gestión de inventario para una librería local. El establecimiento requiere una forma eficiente de gestionar la memoria para registrar los detalles de los libros sin riesgo de fugas de memoria. Crearás una clase Book utilizando unique_ptr para administrar dinámicamente la información de los libros, implementarás un constructor con parámetros para el título, el autor y el año de publicación, y añadirás un método para mostrar los detalles del libro de forma segura mediante el uso de punteros inteligentes.

Este es un Desafío (Challenge), que a diferencia de un Laboratorio Guiado, requiere que intentes completar la tarea de forma independiente en lugar de seguir pasos de aprendizaje estructurados. Los desafíos suelen tener una dificultad mayor. Si encuentras obstáculos, puedes consultar con Labby o revisar la solución. Los datos históricos indican que este es un desafío de nivel principiante con una tasa de éxito del 100%. Ha recibido una valoración positiva del 100% por parte de los estudiantes.

Gestión Segura de Memoria Dinámica

Te encuentras desarrollando un sistema básico de inventario para una librería. El negocio necesita optimizar el uso de la memoria al rastrear los datos de sus existencias, garantizando que no existan fugas de recursos.

Tareas

  • Crear una clase Book que emplee unique_ptr para gestionar dinámicamente la información del libro.
  • Implementar un constructor que reciba el título, el autor y el año de publicación.
  • Añadir un método para mostrar la información del libro de forma segura mediante punteros inteligentes.
  • Demostrar una asignación de memoria adecuada y una liberación automática de recursos.

Requisitos

  • Utilizar unique_ptr para la gestión de la memoria de los objetos de tipo libro.
  • Realizar la implementación en el archivo ~/project/book_tracker.cpp.
  • Definir un constructor con parámetros para el título, el autor y el año de publicación.
  • Incluir un método displayInfo() para imprimir los detalles del libro.
  • Asegurar que no ocurran fugas de memoria durante la creación y destrucción de los objetos.

Ejemplos

Compila y ejecuta el programa para visualizar la información del libro:

g++ book_tracker.cpp -o book_tracker
./book_tracker

Ejemplo de salida:

Book Title: The Great Gatsby
Author: F. Scott Fitzgerald
Publication Year: 1925

Consejos

  • Emplea std::unique_ptr para lograr una gestión de memoria automatizada.
  • No olvides inicializar las variables miembro dentro del constructor.
  • Utiliza std::move() cuando necesites transferir la propiedad de los punteros únicos.
  • Implementa métodos que permitan acceder y mostrar la información del libro de manera segura.
✨ Revisar Solución y Practicar

Resumen

En conclusión, este desafío requiere la creación de una clase Book que gestione dinámicamente la información mediante unique_ptr. Implementarás un constructor para inicializar los datos del libro, como el título, el autor y el año de publicación, y añadirás un método para mostrar dicha información de forma segura. El objetivo principal es demostrar una correcta asignación de memoria y su limpieza automática, asegurando que no se produzcan fugas de memoria durante el ciclo de vida de los objetos.