Surcharge pour sort() C++

Fermé
agah - 24 févr. 2010 à 14:41
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 25 févr. 2010 à 13:55
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

5 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 févr. 2010 à 14:48
quelle est l'erreur ?
0
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 févr. 2010 à 16:03
Je te conseillerai de définir ta struture element en dehors de la matrice. Ou alors de mettre un typedef.
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
24 févr. 2010 à 19:14
ce n'est pas "element.indice" qu'il faut indiquer, mais "this->indice", non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
25 févr. 2010 à 08:24
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
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
25 févr. 2010 à 13:55
ah ouais ! Heureux de t'avoir aidé à trouvé l'erreur en lisant trop vite son post ^^
0