Sichere Verwaltung von dynamischem Speicher

C++Beginner
Jetzt üben

Einführung

In dieser Herausforderung entwickeln Sie ein kleines Inventarverwaltungssystem für eine lokale Buchhandlung. Der Laden benötigt eine speichereffiziente Methode, um Buchdetails zu erfassen, ohne Speicherlecks zu riskieren. Sie werden eine Klasse Book erstellen, die unique_ptr nutzt, um Buchinformationen dynamisch zu verwalten. Dabei implementieren Sie einen Konstruktor mit Parametern für Titel, Autor und Erscheinungsjahr sowie eine Methode zur sicheren Anzeige der Buchdetails unter Verwendung von Smart-Pointer-Management.

Sichere Verwaltung von dynamischem Speicher

Sie entwickeln ein kleines Inventarverwaltungssystem für eine lokale Buchhandlung. Das Geschäft benötigt eine speichereffiziente Lösung, um Buchdetails zu verwalten, bei der Speicherlecks ausgeschlossen sind.

Aufgaben

  • Erstellen Sie eine Klasse Book, die unique_ptr zur dynamischen Verwaltung von Buchinformationen verwendet.
  • Implementieren Sie einen Konstruktor, der Buchtitel, Autor und Erscheinungsjahr entgegennimmt.
  • Fügen Sie eine Methode hinzu, um Buchinformationen sicher unter Verwendung von Smart Pointern auszugeben.
  • Demonstrieren Sie die korrekte Speicherallokation und die automatische Bereinigung.

Anforderungen

  • Verwenden Sie unique_ptr für die Speicherverwaltung der Buchobjekte.
  • Erstellen Sie die Implementierung in der Datei ~/project/book_tracker.cpp.
  • Implementieren Sie einen Konstruktor mit Parametern für Titel, Autor und Erscheinungsjahr.
  • Integrieren Sie eine Methode displayInfo(), um die Buchdetails auszugeben.
  • Stellen Sie sicher, dass bei der Erstellung und Zerstörung von Objekten keine Speicherlecks auftreten.

Beispiele

Kompilieren und führen Sie das Programm aus, um die Buchinformationen anzuzeigen:

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

Beispielhafte Ausgabe:

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

Hinweise

  • Nutzen Sie std::unique_ptr für die automatische Speicherverwaltung.
  • Denken Sie daran, die Elementvariablen im Konstruktor zu initialisieren.
  • Verwenden Sie std::move(), wenn Sie den Besitz von Unique Pointern übertragen.
  • Implementieren Sie Methoden für den sicheren Zugriff und die Anzeige der Buchinformationen.
✨ Lösung prüfen und üben

Zusammenfassung

Zusammenfassend lässt sich sagen, dass diese Herausforderung von Ihnen verlangt, eine Klasse Book zu erstellen, die Buchinformationen mithilfe von unique_ptr dynamisch verwaltet. Sie implementieren einen Konstruktor zur Initialisierung der Buchdetails wie Titel, Autor und Erscheinungsjahr sowie eine Methode zur sicheren Anzeige dieser Informationen. Ziel ist es, den korrekten Umgang mit Speicherallokation und automatischer Bereinigung zu demonstrieren, um sicherzustellen, dass während des gesamten Lebenszyklus der Objekte keine Speicherlecks auftreten.