Questão de Programação — Linguagens de programação — IDCAP 2025
ProgramaçãoLinguagens de programação
- Código
- qg517172
- Banca
- IDCAP
- Órgão
- HEMOBA
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista Técnico - Área de Atuação: Análise de Sistemas
A linguagem C++ moderna introduziu ponteiros inteligentes (smart pointers) na sua biblioteca padrão para auxiliar no gerenciamento automático de memória, mitigando problemas como vazamentos de memória (memory leaks) e ponteiros pendentes (dangling pointers). Em um sistema de processamento de dados, um objeto de grande porte precisa ser acessado por múltiplas classes, mas sua existência deve ser controlada por um único gerenciador. Assinale a alternativa que descreve o ponteiro inteligente mais adequado para garantir que o objeto seja destruído automaticamente quando o gerenciador sair de escopo, ao mesmo tempo que permite que outras partes do sistema observem o objeto sem afetar seu ciclo de vida.
- AUtilizar um std::weak_ptr na classe gerenciadora e std::unique_ptr nas classes observadoras, transferindo a propriedade do objeto para a primeira classe que o observar.
- BUtilizar um std::shared_ptr na classe gerenciadora e distribuir cópias deste std::shared_ptr para todas as classes observadoras, garantindo que o objeto só seja destruído quando a última referência for eliminada.
- CUtilizar um ponteiro bruto (*) na classe gerenciadora e um std::shared_ptr nas classes observadoras, sendo responsabilidade do gerenciador deletar o objeto manualmente.
- DUtilizar std::auto_ptr (da biblioteca antiga) em todas as classes, pois ele transfere a propriedade do objeto a cada cópia, garantindo que apenas uma classe por vez seja a proprietária.
- EUtilizar um std::unique_ptr na classe gerenciadora para garantir a propriedade exclusiva e a destruição automática, e fornecer std::weak_ptr para as classes observadoras, permitindo que elas acessem o objeto de forma segura, mas sem impedir sua destruição.