C++ · Intermediário · Inglês · Técnico
smart pointer
Classe que se comporta como ponteiro, mas gerencia o tempo de vida do objeto apontado e o libera automaticamente. A biblioteca padrão oferece unique_ptr, shared_ptr e weak_ptr.
Onde usar
Em code review, new e delete manuais são trocados por smart pointers para tornar a posse explícita no tipo. A escolha entre eles responde à pergunta: quem é o dono deste objeto?
Em código
auto a = std::make_unique<int>(1);
auto b = std::make_shared<int>(2);
std::weak_ptr<int> c = b; // não é dono
*a += 1;
// ao sair do escopo, tudo é liberadoExemplos
Replace this raw pointer with a smart pointer to make ownership clear.
Troque esse ponteiro bruto por um smart pointer para deixar a posse clara.
Smart pointers free the object automatically when they go out of scope.
Smart pointers liberam o objeto automaticamente ao sair de escopo.
Cuidado
Não use smart pointer para tudo: se a função apenas observa o objeto, passe referência ou ponteiro bruto sem posse.
Sinônimos
ponteiro inteligente
Antônimos
ponteiro bruto