

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
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.
Utilizar 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.
Utilizar 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.
Utilizar um ponteiro bruto (*) na classe gerenciadora e um std::shared_ptr nas classes observadoras, sendo responsabilidade do gerenciador deletar o objeto manualmente.
Utilizar 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.
Utilizar 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.