Bonjour,
Est-ce que quelqun pourrait m'expliquer le principe des smart Pointeurs ?
Merci.
Bonjour,
Est-ce que quelqun pourrait m'expliquer le principe des smart Pointeurs ?
Merci.
Salut !
Alors, ça dépend des langages, de la librairie, etc...
en général, un "Smart Pointer" consiste à faire des pointeurs qui se désalloues "tout seuls" quand il n'y a plus de pointeurs qui pointe dessus...
Généralement ça marche par un "comptage" de référence : on compte combien de "Smart Pointer"s pointent sur une variable... quand ce nombre arrive à 0, on désalloue la variable...
Ensuite, certains API gère ça différemment, exemple : la STL C++ utilise la notion de pointeur propriétaire d'une instance...
c'est à dire qu'une instance de SP est désigné comme propriétaire de la variable, et quand le SP est assigné à une autre instance, c'est cette nouvelle instance qui en devient le propriétaire... quand le propriétaire d'une variable est détruit, la variable est détruite... ce qui peut être très génant pour les copies par exemple...
Comme je te l'ai dit, cela dépend princpalement du langage et de l'API ou librairie utilisée![]()
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
Bizarre, il n'y a jamais eu de smart pointer dans la STL...Envoyé par Swoög
Effectievement, les SP sont surtout utilisés en C++, ils n'ont pas d'intérêt en Java, et en C, il n'y a pas de classe.
La bibliothèque standard du C++ propose un SP, auto_ptr<>, qui est responsable d'un pointeur. Si on copie une instance de cet objet, la responsabilité est transférée.
Boost propose d'autres SP, et un article à ce sujet arrivera sans doute bientôt sur DVP![]()
Je pensais effectivement aux auto_ptr...Envoyé par Miles
PS : Cool... un article sur les SP![]()
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
Merci pous vos réponses...
On m'avait posé cette question lors d'un entretien avec un client.
Et je n'ai pas su répondre. Je connais le langage C++ dans ses
grandes lignes mais il y a des subtilités que j'ignore encore....
![]()
Un article sur les smart pointers en attendant celui de developpez.com :
http://www.onlamp.com/pub/a/onlamp/2...-pointers.html
--
Jedaï
Partager