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 :

Les fameux pointeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut Les fameux pointeurs
    Bonjour, j'aimerais me faire un pointeur vers une map, mais je n'y arrive pas du tout ahah


    Supposons que je fais


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    const std::map<int,std::vector<int> > *m;
    m = UneAutreClasse->GetMap(); 
     
     
    // ...
    const std::map<int,std::vector<int> >& GetMap { return DaMap; }
    Pourquoi cela ne fonctionne-t-il pas avec un pointeur, mais si m est une référence (&m) cela fonctionne?!

    Merci de m'éclairer sur les fameux pointeurs!

  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
    Kikou !!

    tu essaies d'assigner une référence à un pointeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const std::map<int,std::vector<int> > *m;
    m = &UneAutreClasse->GetMap(); 
     
     
    // ...
    const std::map<int,std::vector<int> >& GetMap { return DaMap; }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const std::map<int,std::vector<int> > *m;
    m = UneAutreClasse->GetMap(); 
     
     
    // ...
    const std::map<int,std::vector<int> >* GetMap { return &DaMap; }
    sinon, tout ce que tu fais, c'est assigner une référence (accès directe) à un pointeur (accès indirect) donc impossible, le type n'est pas le même
    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
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    Ah, subtile quand même!

    Je joue avec ca un peu et j'te tiens au courant du dénouement!

  4. #4
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    Voila ca fonctionne, mais est-il préférable de faire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     const std::map<int,std::vector<int> > *m = p_frm->m_treeCtrl->GetToDraw();  
     
    //...
    const std::map<int,std::vector<int> >* GetToDraw() { return &todraw; }
    ou utiliser des références?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    const std::map<int,std::vector<int> > &m = p_frm->m_treeCtrl->GetToDraw();  
     
    //...
    const std::map<int,std::vector<int> >& GetToDraw() { return todraw; }

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Une référence bien sûr, puisque finalement tout ce que tu veux c'est récupérer un alias sur une certaine variable membre, sans alourdir le code avec une syntaxe et des tests supplémentaires.

    Un pointeur aurait été utile si par exemple tu aurais dû pouvoir renvoyer NULL.

  6. #6
    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
    J'ajouterais également que le principal avantage d'un pointeur est qu'on puisse modifier ce sur quoi il pointe, ce n'est pas possible pour une référence

    ensuite, il faut voir ce dont tu as besoin...

    c'est certain que les références sont préférables dans la mesure du possible ^^
    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)

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

Discussions similaires

  1. Les fonctions / pointeurs
    Par Delnir dans le forum Débuter
    Réponses: 18
    Dernier message: 08/12/2008, 18h41
  2. Réponses: 5
    Dernier message: 18/11/2008, 10h39
  3. Réponses: 2
    Dernier message: 16/07/2007, 15h34
  4. les coordonnées pointeur souris
    Par Moine dans le forum C
    Réponses: 4
    Dernier message: 16/06/2007, 02h52
  5. [XSLT][->texte] les fameux retour chariot et a la ligne
    Par SOPRA-Eherve dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/06/2006, 23h14

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