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
Bookutilisantunique_ptrpour 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_ptrpour 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_ptrpour 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é.
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.



