Les pointeurs intelligents sont des objets spéciaux concus pour agir comme des pointeurs ordinaires mais avec en plus la capacité de gérer les ressources sur lesquelles ils pointent. En C++, il arrive qu'il soit difficile de déterminer à qui revient la responsabilité de désallouer un bloc mémoire allouer dynamiquement. Avec les pointeurs intelligents, cette responsabilité revient à ces derniers.
Les pointeurs intelligents doivent inclure les trois éléments suivants :
1. Construction et destruction3 stratégies possibles :