Gestionar la memoria dinámica de forma segura

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este desafío, estás desarrollando un pequeño sistema de gestión de inventario para una librería local. La tienda necesita una forma eficiente en términos de memoria para realizar un seguimiento de los detalles de los libros sin riesgo de fugas de memoria. Crearás una clase Book utilizando unique_ptr para gestionar 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 agregarás un método para mostrar los detalles de los libros de manera segura utilizando la gestión de punteros inteligentes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/AdvancedConceptsGroup(["Advanced Concepts"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/constructors("Constructors") cpp/AdvancedConceptsGroup -.-> cpp/pointers("Pointers") subgraph Lab Skills cpp/classes_objects -.-> lab-446299{{"Gestionar la memoria dinámica de forma segura"}} cpp/constructors -.-> lab-446299{{"Gestionar la memoria dinámica de forma segura"}} cpp/pointers -.-> lab-446299{{"Gestionar la memoria dinámica de forma segura"}} end

Gestionar la memoria dinámica de forma segura

Estás desarrollando un pequeño sistema de gestión de inventario para una librería local. La tienda necesita una forma eficiente en términos de memoria para realizar un seguimiento de los detalles de los libros sin riesgo de fugas de memoria.

Tareas

  • Crear una clase Book utilizando unique_ptr para gestionar dinámicamente la información de los libros
  • Implementar un constructor que tome el título del libro, el autor y el año de publicación
  • Agregar un método para mostrar la información del libro de manera segura utilizando la gestión de punteros inteligentes
  • Demostrar una correcta asignación de memoria y limpieza automática

Requisitos

  • Utilizar unique_ptr para gestionar la memoria de los objetos de libro
  • Crear la implementación en ~/project/book_tracker.cpp
  • Implementar 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
  • Asegurarse de que no se produzcan fugas de memoria durante la creación y destrucción de objetos

Ejemplos

Compila y ejecuta el programa para mostrar 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

Pistas

  • Utiliza std::unique_ptr para la gestión automática de memoria
  • Recuerda inicializar las variables miembro en el constructor
  • Utiliza std::move() cuando transfieras la propiedad de los punteros únicos
  • Implementa métodos para acceder y mostrar de forma segura la información del libro
✨ Revisar Solución y Practicar

Resumen

En resumen, este desafío te requiere crear una clase Book que gestione dinámicamente la información de los libros utilizando unique_ptr. Implementarás un constructor para inicializar los detalles del libro, como el título, el autor y el año de publicación, y agregarás un método para mostrar de manera segura la información del libro. El objetivo es demostrar una correcta asignación de memoria y limpieza automática, asegurando que no se produzcan fugas de memoria durante la creación y destrucción de objetos.