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 :

Probleme de list


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Par défaut Probleme de list
    Bonjour,
    j'ai besoin dans un programme d'utiliser un tableau de list d'une classe pixel.
    Je fait donc la déclaration de ma classe pixel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    #ifndef PIX
    #define PIX
     
    class pixel{
    public:
    int x,y;
    int level;
     
     public: 
    pixel(int X,int Y,int L){x=X;x=Y;level=L;}
    pixel& operator=(pixel& p){x=p.x;y=p.y;level=p.level;}
     
    /*int getX(){return x;}
    int getY(){return y;}
    int getL(){return level;}
    */
    };
     
    #endif
    Ensuite je crée un tableau de list de pixel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    list<pixel> *ex;
    ex = new list<pixel>[256] 
    for(int i=0;i<256;i++)
        explorelist[i] = list<pixel>();
    Le probleme surviens quand je l'utilise dans une autre classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    bool mafonctionpixel (pixel &p) {
     
          p = explorelist[i].pop_front().x; // ca me fait une erreur
          return true;
     
    }
    Voila les erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /usr/include/c++/4.4/bits/list.tcc: In member function ‘std::list<_Tp, _Alloc>& std::list<_Tp, _Alloc>::operator=(const std::list<_Tp, _Alloc>&) [with _Tp = pixel, _Alloc = std::allocator<pixel>]’:
    src/WatershedGrayLevel.cpp:16:   instantiated from here
    /usr/include/c++/4.4/bits/list.tcc:143: error: no match foroperator=’ in ‘__first1.std::_List_iterator<_Tp>::operator* [with _Tp = pixel]() = __first2.std::_List_const_iterator<_Tp>::operator* [with _Tp = pixel]()’
    src/pixel.h:23: note: candidates are: pixel& pixel::operator=(pixel&)
    make: *** [src/WatershedGrayLevel.o] Erreur 1
    rm  src/*.o
    make: La cible « all » n'a pas pu être refabriquée à cause d'erreurs.
    Si quelqu'un pouvait m'aider.
    D'avance merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Par défaut RE
    En fait je viens de me rendre compte que l'utilisation de l'objet list sans forcement avec un objet particulier pose probleme:

    list <int> t;
    int y = t.pop_back();

    erreur:
    error: void value not ignored as it ought to be

    Ca me donne ca comme erreur. Pourtant j'ai mis les include et tout.
    Quelqu'un aurait une idée du probleme?

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Il n'est pas possible d'avoir une fonction pop qui soit à la fois exception-safe et retournant une valeur. Le C++ a donc décomposé cette fonction en 2 : back(), qui retourne un objet, pour lire la valeur, et pop_back, qui ne retourne rien, pour la retirer
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Par défaut Re
    Bonjour,
    merci pour vos réponses.

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

Discussions similaires

  1. Probleme ds liste chainee 2
    Par Treuze dans le forum C++
    Réponses: 7
    Dernier message: 11/04/2006, 17h55
  2. [MySQL] probleme avec liste déroulante et requete
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/01/2006, 13h55
  3. Probleme arbre/liste chainée en template
    Par Raton dans le forum Langage
    Réponses: 1
    Dernier message: 07/11/2005, 16h09
  4. un probleme de listing de dossier
    Par bidoo dans le forum Langage
    Réponses: 2
    Dernier message: 01/11/2005, 11h18
  5. Réponses: 8
    Dernier message: 02/04/2004, 17h31

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