ExpertiDict

C++ · Intermediário · Inglês · Técnico

smart pointer

smɑːrt ˈpɔɪntɚsubstantivo

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 é liberado

Exemplos

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

Veja também

Todos os termos de C++