Nous utilisons la composition, quand un objet a un seul parent, ce qui devrait prendre en compte la durée de vie de l'objet. Nous utilisons unique_ptr
dans la même situation, mais l'objet peut être nullptr
.Comment gérer la durée de vie du type "le plus court de"?
Nous utilisons shared_ptr
lorsque plusieurs entités externes peuvent avoir besoin de notre objet, donc sa durée de vie est prolongée jusqu'à ce que la dernière de ces entités externes perd son intérêt.
Ici, je veux poser une question sur une autre situation de vie. Que faire si l'objet doit vivre le plus court de plusieurs durées?
Voici un exemple. Prenons une minuterie à un coup, qui stocke un foncteur et l'exécute une fois le comptage terminé. Il est logique de moi *, que cet objet de la minuterie est détruite après:
1. fulfilling its task - therefore it should be able to destroy istelf
or
2. the parent loosing interest in the timer - so the parent should be able to
destroy the object as well
Actuellement, je l'aide d'une mise en œuvre maladroite avec des pointeurs uniques. Quel serait un bon modèle/directive/mise en œuvre de ce problème?
raisons *: 1) le foncteur pourrait être propriétaire d'autres ressources 2) la minuterie aurait pu être mis à un très grand nombre, puis abandonnés 3) si le parent a été détruit, nous ne généralement » Je ne veux pas invoquer ses callbacks
Cela a beaucoup en commun avec l'annulation de thread, lorsque vous calculez quelque chose en réponse à une requête réseau, mais la connexion a été interrompue brusquement. Compléter l'informatique ne causerait aucune corruption mais serait un gaspillage de ressources. – curiousguy