CSI2772 - Concepts avancés de programmation en C++

Version Imprimable

IX - Pointeurs Intelligents

1. Le pointeur intelligent

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

Haut de la page

2. unique_ptr, shared_ptr, weak_ptr

La STL inclut différents pointeurs intelligents. La classe auto_ptr est maintenant obsolète et devrait être remplacée par unique_ptr.

Haut de la page

Collaboratrices: Emilie Lavigne et Sophie-Catherine Jeaurond