Introdução
Neste desafio, você desenvolverá um pequeno sistema de gerenciamento de inventário para uma livraria local. A loja precisa de uma maneira eficiente em termos de memória para rastrear os detalhes dos livros sem correr o risco de vazamentos de memória (memory leaks). Você criará uma classe Book utilizando unique_ptr para gerenciar dinamicamente as informações dos livros, implementará um construtor com parâmetros para título, autor e ano de publicação, e adicionará um método para exibir os detalhes do livro com segurança através do gerenciamento de ponteiros inteligentes.
Gerenciar Memória Dinâmica com Segurança
Você está desenvolvendo um pequeno sistema de gerenciamento de inventário para uma livraria local. A loja precisa de uma forma eficiente de gerenciar a memória ao rastrear os detalhes dos livros, garantindo a integridade do sistema.
Tarefas
- Criar uma classe
Bookutilizandounique_ptrpara gerenciar dinamicamente as informações do livro - Implementar um construtor que receba o título do livro, autor e ano de publicação
- Adicionar um método para exibir as informações do livro com segurança usando ponteiros inteligentes
- Demonstrar a alocação correta de memória e a limpeza automática
Requisitos
- Utilize
unique_ptrpara gerenciar a memória dos objetos de livro - Crie a implementação no arquivo
~/project/book_tracker.cpp - Implemente um construtor com parâmetros para título, autor e ano de publicação
- Inclua um método
displayInfo()para imprimir os detalhes do livro - Garanta que não ocorram vazamentos de memória durante a criação e destruição dos objetos
Exemplos
Compile e execute o programa para exibir as informações do livro:
g++ book_tracker.cpp -o book_tracker
./book_tracker
Exemplo de saída:
Book Title: The Great Gatsby
Author: F. Scott Fitzgerald
Publication Year: 1925
Dicas
- Use
std::unique_ptrpara o gerenciamento automático de memória - Lembre-se de inicializar as variáveis membros no construtor
- Utilize
std::move()ao transferir a posse (ownership) de ponteiros únicos, se necessário - Implemente métodos para acessar e exibir as informações do livro de forma segura
Resumo
Em resumo, este desafio exigiu a criação de uma classe Book que gerencia dinamicamente as informações de um livro usando unique_ptr. Você implementou um construtor para inicializar detalhes como título, autor e ano de publicação, além de um método para exibir essas informações com segurança. O objetivo principal foi demonstrar a alocação correta de memória e a limpeza automática, garantindo que nenhum vazamento de memória ocorra durante o ciclo de vida do objeto.



