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 :

affecter un iterateur avec un pointeur


Sujet :

C++

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut affecter un iterateur avec un pointeur
    Bonjour,

    J'essaie de corriger un programme de traduction. J'ai beaucoup de modifications de pointeurs qui passent d'un type à l'autre.

    Pour moi ca me semble plus sur de profiter des itérateur pour faire les transtypage au niveau élémentaire.

    Mais mon compilateur me refuse les affectation de l'iterateur avec le pointeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           std::list<CElementDescription*>::iterator itTmpSrc;
            CElementDescription* pTmpSrc;
            pTmpSrc = (CElementDescription*)&itHidSrc;
            itTmpSrc = pTmpSrc;
    ainsi le transtypage du pointeur pTmpSrc en ItTmpSrc est refusé

    Je serais heureux d'voir une explication sur ce qu'on peut faire. J'ai essayer de caster basiquement ou dynamiquement...

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Il n'existe pas de conversion possible entre un itérateur et un pointeur, ce sont deux choses distinctes.

    Par contre à partir de l'itérateur tu peux accéder à l'élément (déférencement) puis en prendre l'adressemais cela n'est pas possible dans l'autre sens.

  3. #3
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Traitement des iterateurs
    Bonjour,

    Donc j'ai réorienté mon action. J'ai supprimé la transmission de iterateurs dans les paramètres des fonctions appellées, et j'ai affecté des pointeurs dans l'appel de ces fonctions. Ca marche très bien car dans la fonction appelé, le pointeur est traité comme l'itérateur

    le code devient pour l'appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CElementDescription* pTmpSrc;
            CElementDescription* pTmpTrt;
            pTmpSrc = (CElementDescription*)&itHidSrc;
            pTmpTrt = (CElementDescription*)&itHidTrt;
    //      [Fill the aligned cells with the source and target linked segments]
            FillAlignedSegmentGrid( pTmpSrc, pTmpTrt, pLinkDescription, iRow);
    et dans la fonction appelée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void FillAlignedSegmentGrid( CElementDescription* itSrcDesc,
                                                CElementDescription* itTgtDesc,
                                                CLinkDescription* pLinkDescription,
                                                int &iRow)
    alors que les deux premier paramètre étaient préalablement défini comme iterateur sur une liste. Fonctionnellement l'iteratur sur une liste c'est un pointeur sur l'élément de la liste.
    Merci de votre réponse, et à +

  4. #4
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Test
    pour la suite test des balises
    merci à +

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/03/2013, 21h08
  2. Problème avec l'affectation d'un NULL à un pointeur
    Par reeda dans le forum Visual C++
    Réponses: 3
    Dernier message: 14/04/2008, 11h38
  3. Probleme avec des pointeurs...
    Par barucca dans le forum C++
    Réponses: 5
    Dernier message: 23/08/2005, 21h05
  4. [LG]Tri alphabetique avec les pointeurs
    Par zbooon dans le forum Langage
    Réponses: 4
    Dernier message: 06/03/2005, 17h04
  5. [TTreeView] Problème avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/07/2004, 14h31

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