Surcharge pour sort() C++

agah -  
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
class matrice{
private:
struct element{
int indice;
int nombre ;
};
list<element> litEtl;
public:
matrice();
bool operator<(const element&);
trier();
};

bool matrice::operator <(const matrice::element & e1){
return (e1.indice <= element.indice);
}

je voudrai juste surchargre mon operator< mais peine perdu
Quel u un peu m aider
Ou est l'erreur
J'aimerai le trier selon l'indice
Configuration: Windows XP / Firefox 3.5.7

5 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    quelle est l'erreur ?
    0
    1. agah
       
      Merci
      Je ne sais avec quel element comparer l'element e1 de operator<

      matrice.cpp

      bool matrice::operator <(const matrice::element & e1){
      return (e1.indice <= element.indice);
      }



      'matrice::element' : utilisation non conforme de ce type comme expression

      aide moi je dois avancer
      0
  2. agah
     
    Merci
    Je ne sais avec quel element comparer l'element e1 de operator<

    matrice.cpp

    bool matrice::operator <(const matrice::element & e1){
    return (e1.indice <= element.indice);
    }

    'matrice::element' : utilisation non conforme de ce type comme expression

    aide moi je dois avancer
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Je te conseillerai de définir ta struture element en dehors de la matrice. Ou alors de mettre un typedef.
    0
  4. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    ce n'est pas "element.indice" qu'il faut indiquer, mais "this->indice", non ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    pacorabanix a tout faux, mais il vient de m'aider à comprendre l'erreur.
    En fait tu défini une structure "element" dans ta classe "matrice", mais pas de variable.
    ceci devrai mieu fonctionné :
    class matrice{
    private:
    struct element{
    int indice;
    int nombre ;
    };
    element Element;
    list<element> litEtl;
    public:
    matrice();
    bool operator<(const element&);
    trier();
    };
    
    bool matrice::operator <(const matrice::element & e1){
    return (e1.indice <= Element.indice);
    } 

    ou
    class matrice{
    private:
    typedef struct {
    int indice;
    int nombre ;
    }element;
    element Element;
    list<element> litEtl;
    public:
    matrice();
    bool operator<(const element&);
    trier();
    };
    
    bool matrice::operator <(const matrice::element & e1){
    return (e1.indice <= Element.indice);
    } 
    0
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      ah ouais ! Heureux de t'avoir aidé à trouvé l'erreur en lisant trop vite son post ^^
      0