IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Smart Pointeurs ?


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 97
    Par défaut Smart Pointeurs ?
    Bonjour,

    Est-ce que quelqun pourrait m'expliquer le principe des smart Pointeurs ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    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)

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par Swoög
    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
    Bizarre, il n'y a jamais eu de smart pointer dans la STL...
    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

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par Miles
    Bizarre, il n'y a jamais eu de smart pointer dans la STL...
    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...

    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)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 97
    Par défaut
    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....


  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Un article sur les smart pointers en attendant celui de developpez.com :
    http://www.onlamp.com/pub/a/onlamp/2...-pointers.html

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pointeur nu avec new ou smart pointer?
    Par r0d dans le forum Débuter
    Réponses: 7
    Dernier message: 07/12/2011, 10h33
  2. [Smart Ptr] Problème de pointeur avec ASIO
    Par Raz-X dans le forum Boost
    Réponses: 2
    Dernier message: 18/08/2011, 09h07
  3. references, pointeurs, smart pointer ?
    Par Elay dans le forum C++
    Réponses: 6
    Dernier message: 13/10/2010, 22h30
  4. Réponses: 3
    Dernier message: 06/07/2007, 14h54
  5. djgpp et pointeurs far
    Par elvivo dans le forum C
    Réponses: 2
    Dernier message: 13/07/2002, 00h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo