Concepts avancés de programmation en C++

Version Imprimable

IX - Pointeurs Intelligents

1. Le pointeur intelligent

Les pointeurs intelligents sont des objets spéciaux conçus 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 destruction

2. Copie et affectation

3. Déréférencement

3 stratégies possibles :

  1. Pointeurs intelligents à propriété exclusive

  2. Pointeurs intelligents à propriétaire unique avec références multiples




  3. Pointeurs intelligents avec comptage de références
  4. // {référence intégrée à l'objet ex cu ::Mat}

Haut de la page

2. Auto_ptr

La STL fournit un pointeur intelligent: auto_ptr
ATTENTION: des fuites de mémoire sont possible.




Haut de la page

Collaboratrices: Emilie Lavigne et Sophie-Catherine Jeaurond