J'ai une question concernant la propriété et shared_ptrs en C++:C++: circularité et shared_ptr
J'ai un tas d'objets créés sur le tas. Chacun a un conteneur qui contient des pointeurs vers certains de ces objets, et parfois même un pointeur vers le même objet auquel le conteneur appartient. Depuis que je lis sur les risques de l'utilisation de shared_ptr dans de telles circonstances (circularité), je pense à la façon de le faire mieux. Heureusement, il y a une classe qui contient tous les objets en question (mais pas elle-même), donc je pensais lui en donner la propriété, de sorte que son conteneur contienne shared_ptrs alors que les objets en question contiennent des pointeurs bruts. Autrement dit, la destruction de la classe libère la mémoire allouée par le tas. Est-ce (également en termes de design) une bonne décision à prendre?
Une autre idée était de ne pas laisser les objets contenir des pointeurs, mais plutôt des identifiants uniques. Cela impliquerait une recherche pour obtenir réellement un objet via son ID, cependant, je pense que cela réduirait aussi les dépendances critiques entre les objets. Est-ce préférable?
Cordialement,
Jena
@downvoter: Pourriez-vous s'il vous plaît expliquer la raison de la downvote afin de me donner une chance de s'améliorer? –