GliUno '''smart pointerspointer''' (letteralmente{{Lett|puntatore "puntatori intelligenti"intelligente}}) sonoè un oggettioggetto del linguaggio [[C++]] che facilitanofacilita l'utilizzo dei puntatori. Lo scopo principale di uno smart pointer è quello di provvedere una cancellazione automatica della memoria. Non facendo parte delle caratteristiche del C++ gli Smart Pointers vengono forniti attraverso librerie (tra cui quella standard), e pertanto non possono sostituirsi completamente alla gestione della memoria così come avviene per i linguaggi con Garbage Collection. Sono elencati qui di seguito i principali tipi di Smart Pointers ad oggi diffusi e ampiamente approvati dalla comunità.