En général et sommaire,
De fortes présomptions de garantir leur propre validité. Utiliser, par exemple, lorsque:
- Vous possédez de l'objet pointé; vous de le créer et de le détruire
- Vous n'avez pas défini de comportement si l'objet n'existe pas
- Vous devez vous assurer que l'objet existe.
Des pointeurs faibles garantie connaître leur propre validité. Utiliser, par exemple, lorsque:
- D'accès, mais ce n'est pas la vôtre.
- Vous avez défini le comportement si l'objet n'existe pas
Lock() sur un faible pointeur retourne une forte pointeur; c'est la façon dont vous accédez à la faiblesse du pointeur. Si l'objet n'est plus valide (il a été supprimé, etc), puis la forte pointeur est NULL, sinon, ce sera le point de l'objet. Vous aurez besoin de vérifier cela.
Il est configuré de cette manière, de sorte que vous ne pouvez pas supprimer accidentellement l'objet pendant que vous l'utilisez, car vous avez fait une temporaire (local) forte de pointeur, et donc garantie l'existence de l'objet tandis que la forte pointeur reste. Lorsque vous avez fini d'utiliser l'objet, vous devez généralement laisser la forte pointeur de tomber hors de la portée (ou à la réaffectation des il), ce qui permet alors à la suppression de l'objet. Pour le multithreading, les traiter avec le même soin que vous traiter d'autres choses qui n'ont pas intégré dans le thread de sécurité, notant que la garantie je l'ai mentionné ci-dessus sera prise quand le multithreading. Autant que je sache, ils ne font rien de spécial passé.
Le coup de pouce partagé pointeurs ont également garbage collector comme caractéristiques, depuis quand la dernière forte pointeur vers un objet disparaît ou les points d'ailleurs, l'objet est supprimé.
Il y a aussi les performances et les dépendances circulaires mentionnées dans les autres réponses.
Fondamentalement, je dirais que le coup de pouce pointeur partagé bibliothèque vous permet de ne pas gâcher en mettant sur pied un programme, mais il n'est pas un substitut pour prendre le temps de bien concevoir votre pointeurs, l'objet de la propriété et de la durée de vie. Si vous avez une telle conception, vous pouvez utiliser la bibliothèque de la faire respecter. Si vous ne disposez pas d'une telle conception, vous êtes confronté à différents problèmes qu'avant.