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

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

Введение

В рамках этого испытания вам предстоит разработать небольшую систему управления инвентарем для местного книжного магазина. Магазину необходим эффективный с точки зрения использования памяти способ отслеживания данных о книгах, исключающий риск утечек памяти. Вы создадите класс 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. Вы реализовали конструктор для инициализации таких данных, как название, автор и год издания, а также метод для безопасного вывода этой информации. Целью работы была демонстрация правильного выделения памяти и её автоматической очистки, что гарантирует отсутствие утечек ресурсов в процессе жизненного цикла объекта.