Введение
В рамках этого испытания вам предстоит разработать небольшую систему управления инвентарем для местного книжного магазина. Магазину необходим эффективный с точки зрения использования памяти способ отслеживания данных о книгах, исключающий риск утечек памяти. Вы создадите класс Book, использующий unique_ptr для динамического управления информацией о книгах, реализуете конструктор с параметрами для названия, автора и года издания, а также добавите метод для безопасного вывода данных о книге с помощью механизмов умных указателей.
Безопасное управление динамической памятью
Вы разрабатываете систему учета книг для небольшого магазина. Основное требование — экономное использование ресурсов и предотвращение утечек памяти при работе с данными.
Задачи
- Создать класс
Book, использующийunique_ptrдля динамического управления данными о книге. - Реализовать конструктор, принимающий название книги, автора и год издания.
- Добавить метод для безопасного отображения информации о книге через управление умными указателями.
- Продемонстрировать корректное выделение памяти и её автоматическую очистку.
Требования
- Использовать
unique_ptrдля управления памятью объектов книги. - Создать реализацию в файле
~/project/book_tracker.cpp. - Реализовать конструктор с параметрами: название (title), автор (author) и год издания (publication year).
- Включить метод
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. Вы реализовали конструктор для инициализации таких данных, как название, автор и год издания, а также метод для безопасного вывода этой информации. Целью работы была демонстрация правильного выделения памяти и её автоматической очистки, что гарантирует отсутствие утечек ресурсов в процессе жизненного цикла объекта.



