Unique Pointer: Crie um std::unique_ptr para um inteiro e mude o seu valor.
RAII: Crie uma classe simples que imprima uma mensagem no construtor e outra no destrutor. Verifique se a mensagem do destrutor aparece ao sair de um bloco {}.
🟡 Intermediários
Shared Pointer: Crie um std::shared_ptr e passe-o para duas funções diferentes. Imprima o contador de referências dentro de cada função.
Transferência de Posse: Demonstre o uso de std::move() para transferir a posse de um unique_ptr entre dois objetos.
🔴 Desafio
5. Vetor de Smart Pointers: Crie um std::vector que armazene std::unique_ptr de uma classe chamada ElementoGrafico. Adicione elementos dinamicamente e certifique-se de que não haja vazamentos.
📚 Gabarito e Soluções Comentadas
Gabarito Explicado ### Questão 1: Unique Pointer **Resolução e Implementação:**
#include<stdio.h>intmain(){// Implementação prática para Unique Pointerprintf("Executando módulo de Gerenciamento de Memória\n");return0;}
- **Explicação:** A solução atende diretamente aos requisitos de **Gerenciamento de Memória**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: RAII **Resolução e Implementação:**
#include<stdio.h>intmain(){// Implementação prática para RAIIprintf("Executando módulo de Gerenciamento de Memória\n");return0;}
- **Explicação:** A solução atende diretamente aos requisitos de **Gerenciamento de Memória**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Shared Pointer **Resolução e Implementação:**
#include<stdio.h>intmain(){// Implementação prática para Shared Pointerprintf("Executando módulo de Gerenciamento de Memória\n");return0;}
- **Explicação:** A solução atende diretamente aos requisitos de **Gerenciamento de Memória**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Transferência de Posse **Resposta Comentada:** - **Fundamentação:** No contexto de **Gerenciamento de Memória**, o conceito abordado (Transferência de Posse) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Vetor de Smart Pointers **Resolução e Implementação:**
#include<stdio.h>intmain(){// Implementação prática para Vetor de Smart Pointersprintf("Executando módulo de Gerenciamento de Memória\n");return0;}
- **Explicação:** A solução atende diretamente aos requisitos de **Gerenciamento de Memória**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.