Gerenciar Memória Dinâmica com Segurança

C++Beginner
Pratique Agora

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.

Este é um Desafio (Challenge), que difere de um Laboratório Guiado (Guided Lab) pois você deve tentar concluir a tarefa de forma independente, em vez de seguir passos instrucionais. Desafios geralmente possuem um nível de dificuldade maior. Se encontrar dificuldades, você pode debater com o Labby ou verificar a solução. Dados históricos mostram que este é um desafio de nível iniciante com uma taxa de aprovação de 100%. Ele recebeu uma taxa de avaliações positivas de 100% dos alunos.

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 Book utilizando unique_ptr para 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_ptr para 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_ptr para 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
✨ Verificar Solução e Praticar

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.