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

C++ Discussion :

Pointeurs intelligents vs. pointeurs bruts


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par défaut Pointeurs intelligents vs. pointeurs bruts
    Bonjour à tous.

    Ma question est très simple. Peut-on aujourd'hui se passer des pointeurs bruts dans nos codes et les remplacer par des pointeurs intelligents dans tous les cas ?
    Il me semble, a priori, que si l'on accepte le petit surcout alors c'est toujours possible.

    Si non, qu'est-ce qui nous empêche de le faire ? Avez-vous un exemple concret ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    Si Truc* CreerTruc( void* p ) créé un objet de classe truc (new Truc) qui garde caché dans sa manche un pointeur sur p, et que tu lui passes un "smart pointer", alors tu as une référence cachée qui traîne, non comptabilisée par ton smart pointer...

    Donc, dans tes codes, pourquoi pas, mais dans les codes des autres, attention.

  3. #3
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    Une autre chose est que la copie d'un pointeur intelligent "auto_ptr" dé-référence l'original. L'auto_ptr ne répond pas toujours à ce que tu désires.

  4. #4
    Membre confirmé

    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par défaut
    Quand je parle de pointeurs intelligents, je pensais à ceux de boost. En prenant soin de toujours choisir le plus adapté.

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    De manière générale, il est au minimum plus sécurisant d'utiliser les pointeurs intelligents que les pointeurs bruts.

    Le temps d'apprentissage est, bien sur, plus important, ne serait-ce que parce qu'il faut commencer par apprendre les différences qui existent entre les différentes possibilités et ce que celles-ci permettent, mais cet investissement est généralement très rapidement amorti en t'économisant énormément de temps de débugage à te demander où se trouve la fuite mémoire ou l'invalidation d'un pointeur, si tu moins, tu choisi... intelligemment tes pointeurs intelligents

    Il est, bien sur, possible de s'en passer, mais cela nécessite une politique stricte de la gestion de la mémoire, une conception sans faille et une confiance absolue dans l'équipe de développement.

    Je dirais volontiers que plus le projet ou l'équipe devient important(e), plus tu as du "turn over" dans l'équipe, plus la nécessité d'utiliser les pointeurs intelligents se fera sentir
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    on peut aussi ne pas utiliser de pointeurs :o

Discussions similaires

  1. Réponses: 55
    Dernier message: 18/03/2014, 12h11
  2. Réponses: 13
    Dernier message: 27/04/2012, 16h03
  3. Les pointeurs intelligents
    Par MatRem dans le forum C++
    Réponses: 8
    Dernier message: 20/06/2006, 19h27
  4. pointeur intelligent??
    Par yashiro dans le forum C++
    Réponses: 3
    Dernier message: 04/04/2006, 08h08
  5. Pointeur intelligent boost : return NULL ->comment faire?
    Par choinul dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 21/12/2005, 16h24

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