Безопасное управление динамической памятью

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом задании вы разрабатываете небольшую систему управления инвентарем для местной книжного магазина. Магазину нужен способ отслеживания деталей о книгах, который экономит память и не представляет риска утечки памяти. Вы создадите класс Book с использованием unique_ptr для динамического управления информацией о книгах, реализуете конструктор с параметрами для названия, автора и года публикации, а также добавите метод для безопасного отображения деталей о книге с использованием управления умными указателями.


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{{"Безопасное управление динамической памятью"}} cpp/constructors -.-> lab-446299{{"Безопасное управление динамической памятью"}} cpp/pointers -.-> lab-446299{{"Безопасное управление динамической памятью"}} end

Безопасное управление динамической памятью

Вы разрабатываете небольшую систему управления инвентарем для местной книжного магазина. Магазину нужен способ отслеживания деталей о книгах, который экономит память и не представляет риска утечки памяти.

Задачи

  • Создать класс Book с использованием unique_ptr для динамического управления информацией о книгах
  • Реализовать конструктор, принимающий название книги, автора и год публикации
  • Добавить метод для безопасного отображения информации о книге с использованием управления умными указателями
  • Продемонстрировать правильное выделение памяти и автоматическую очистку

Требования

  • Использовать unique_ptr для управления памятью объектов книг
  • Реализовать код в файле ~/project/book_tracker.cpp
  • Реализовать конструктор с параметрами для названия, автора и года публикации
  • Включить метод displayInfo(), который выводит детали о книге
  • Гарантировать отсутствие утечек памяти при создании и уничтожении объектов

Примеры

Скомпилируйте и запустите программу для отображения информации о книге:

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

Пример вывода:

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

Подсказки

  • Используйте std::unique_ptr для автоматического управления памятью
  • Не забудьте инициализировать члены-данные в конструкторе
  • Используйте std::move() при передаче владения уникальными указателями
  • Реализуйте методы для безопасного доступа и отображения информации о книге
✨ Проверить решение и практиковаться

Резюме

В целом, в этом задании вам нужно создать класс Book, который динамически управляет информацией о книгах с использованием unique_ptr. Вы должны реализовать конструктор для инициализации деталей о книге, таких как название, автор и год публикации, а также добавить метод для безопасного отображения информации о книге. Цель состоит в том, чтобы продемонстрировать правильное выделение памяти и автоматическую очистку, гарантируя отсутствие утечек памяти при создании и уничтожении объектов.