Contenu du cours
Pointeurs Intelligents C++
Pointeurs Intelligents C++
Fonctions Importantes de Weak Pointer
Pour exploiter tout le potentiel des pointeurs faibles, il est important de connaître les fonctions suivantes.
Avant d'appeler lock()
, vous pouvez vérifier si un pointeur faible est toujours valide (c'est-à-dire si l'objet pointé existe toujours) en utilisant la méthode expired()
. Cette fonction retourne vrai si l'objet référencé a été détruit, et faux sinon.
Dans l'exemple ci-dessus, nous appelons expired()
avant de verrouiller le pointeur faible et d'accéder à l'objet référencé.
La fonction use_count()
Bien qu'un pointeur faible n'affecte pas le compteur de références d'un objet, il est souvent utile de savoir combien de pointeurs partagés gèrent le même objet. La fonction use_count()
retourne ce nombre.
La fonction reset()
Pour libérer un pointeur faible de ses devoirs d'observation d'un objet, vous pouvez utiliser la fonction reset()
. Cela rendra le pointeur faible vide, c'est-à-dire qu'il ne pointe plus vers aucun objet.
La fonction swap()
La fonction swap()
peut être utilisée pour échanger le contenu de deux pointeurs faibles. Cela est particulièrement utile lorsque vous souhaitez changer les objets que les deux pointeurs faibles observent, sans altérer la propriété ou la durée de vie des objets dynamiques.
Dans cet extrait, weakPtrA
observe initialement l'objet géré par sharedPtrA
, et weakPtrB
observe l'objet géré par sharedPtrB
.
Après avoir appelé swap()
, weakPtrA
commence à pointer vers l'objet qui était géré par sharedPtrB
et vice versa.
Merci pour vos commentaires !