Gérer la mémoire dynamique en toute sécurité

C++Beginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez développer un petit système de gestion d'inventaire pour une librairie locale. La boutique a besoin d'un moyen efficace en mémoire pour suivre les détails des livres sans risquer de fuites de mémoire. Vous créerez une classe Book utilisant unique_ptr pour gérer dynamiquement les informations sur les livres, implémenterez un constructeur avec des paramètres pour le titre, l'auteur et l'année de publication, et ajouterez une méthode pour afficher les détails des livres en toute sécurité grâce à la gestion par pointeurs intelligents.

Gérer la mémoire dynamique en toute sécurité

Vous développez un petit système de gestion d'inventaire pour une librairie locale. La boutique a besoin d'une méthode optimisée pour suivre les informations des ouvrages tout en garantissant l'absence de fuites de mémoire.

Tâches

  • Créer une classe Book utilisant unique_ptr pour gérer dynamiquement les données du livre.
  • Implémenter un constructeur acceptant le titre du livre, l'auteur et l'année de publication.
  • Ajouter une méthode pour afficher les informations du livre de manière sécurisée via la gestion des pointeurs intelligents.
  • Démontrer une allocation de mémoire appropriée et un nettoyage automatique.

Exigences

  • Utiliser unique_ptr pour la gestion de la mémoire des objets de type livre.
  • Réaliser l'implémentation dans le fichier ~/project/book_tracker.cpp.
  • Implémenter un constructeur avec des paramètres pour le titre, l'auteur et l'année de publication.
  • Inclure une méthode displayInfo() pour imprimer les détails du livre.
  • Garantir qu'aucune fuite de mémoire ne survient lors de la création et de la destruction des objets.

Exemples

Compilez et exécutez le programme pour afficher les informations du livre :

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

Exemple de sortie :

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

Conseils

  • Utilisez std::unique_ptr pour une gestion automatique de la mémoire.
  • N'oubliez pas d'initialiser les variables membres dans le constructeur.
  • Utilisez std::move() lors du transfert de propriété des pointeurs uniques.
  • Implémentez des méthodes pour accéder et afficher les informations du livre en toute sécurité.
✨ Vérifier la solution et pratiquer

Résumé

En résumé, ce défi vous demandait de créer une classe Book gérant dynamiquement les informations d'un ouvrage à l'aide de unique_ptr. Vous avez implémenté un constructeur pour initialiser les détails du livre, tels que le titre, l'auteur et l'année de publication, ainsi qu'une méthode pour afficher ces informations en toute sécurité. L'objectif était de démontrer une allocation de mémoire rigoureuse et un nettoyage automatique, garantissant qu'aucune fuite de mémoire ne survienne durant le cycle de vie de l'objet.