auto_ptr et shared_ptr

auto_ptr et shared_ptr - C++ - Programmation

Marsh Posté le 21-12-2011 à 11:32:33    

Bonjour,
 
J'aimerais savoir si shared_ptr peut être vu comme une généralisation de auto_ptr ? Par exemple, auto_ptr n'a qu'une référence et shared_ptr 'n' references ...?
 
merci par avance pour votre réponse

Reply

Marsh Posté le 21-12-2011 à 11:32:33   

Reply

Marsh Posté le 22-12-2011 à 02:53:03    

auto_ptr est deprecated en C++ 2011 (je suppose que c'est à cette nouvelle norme que tu t'attaques).
 
unique_ptr pour le cas où tu veux une seule référence à ton objet pointé.
 
Après, c'est toujours pareil, trop de généricité risque de tuer la performance. Avoir comme indice que tu n'auras pas d'autre référence permet de simplifier le code que tu vas générer. Il ne faut pas rendre les choses plus génériques que nécessaire.

Message cité 1 fois
Message édité par theshockwave le 22-12-2011 à 02:53:41

---------------
last.fm
Reply

Marsh Posté le 22-12-2011 à 16:14:16    

theshockwave a écrit :

auto_ptr est deprecated en C++ 2011 (je suppose que c'est à cette nouvelle norme que tu t'attaques).
 
unique_ptr pour le cas où tu veux une seule référence à ton objet pointé.
 
Après, c'est toujours pareil, trop de généricité risque de tuer la performance. Avoir comme indice que tu n'auras pas d'autre référence permet de simplifier le code que tu vas générer. Il ne faut pas rendre les choses plus génériques que nécessaire.


 
Hello,
Merci pour ta réponse ! En fait, je n'ai pas encore regardé la nouvelle norme C++ .. Sans la considérer, on peut voire cela comme une généralisation ? un peu comme ce que sont les sémaphores aux mutex ...?
 
pour moi un auto_ptr à un compteur de référence à 1, et un shared_ptr à n ... mais je ne sais pas si c'est bien ça la différence entre les deux.

Reply

Marsh Posté le 22-12-2011 à 20:31:17    

globalement, c'est à peu près l'idée, mais bon, philosophiquement, ca occupe deux cas différents :
* d'une part, le cas où tu es propriétaire de la donnée pointée (unique_ptr)
* d'autre part, le cas où la propriété de l'objet pointée est partagée entre plusieurs entitéss.
 
Ca ne sont que des moyens d'exprimer la durée de vie des objets.


---------------
last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed