Bonjour je developpe un projet en C++ et j'ai besoin de redefinir les operateurs de comparaisons
je cree ma classe de cette facon :
#include <string>
#include "sortedvector.h"
class reference
{
private:
string mot;
sortedvector<int> Pdef;
sortedvector<int> Pref;
public:
reference (string ="",int =0,int = 0);
void ajouterPdef(int);
void ajouterPref(int);
void supprimerPdef(int);
void supprimerPref(int);
void modifierPdef(int,int);
void modifierPref(int,int);
void afficherPdef();
void afficherPref();
void Setmot (string);
//redefinition des operateurs
int reference operator ==(const reference &);
int reference operator >=(const reference &);
int reference operator <=(const reference &);
int reference operator <(const reference &);
int reference operator >(const reference &);
};
voila pour la declaration et pour la definition de la redeclaration des operateurs je vais ceci :
int reference::operator < (const reference & comparer)
{
return (mot < comparer.mot);
}
int reference::operator <= (const reference & comparer)
{
return (mot <= comparer.mot);
}
int reference::operator > (const reference & comparer)
{
return (mot > comparer.mot);
}
int reference::operator >= (const reference & comparer)
{
return (mot >= comparer.mot);
}
int reference::operator == (const reference & comparer)
{
return (mot == comparer.mot);
}
et pour chaque redeclaration j'obtiens comme message d'erreur :
-->
e:\iut\c++\projet\reference.h(25) : error C2380: type(s) preceding 'reference' (constructor with return type, or illegal redefinition of current class-name?)
et -->
e:\iut\c++\projet\reference.cpp(80) : error C2556: 'int __thiscall reference::operator <(const class reference &)' : overloaded function differs only by return type from 'class reference __thiscall reference::operator <(const class reference &)'
e:\iut\c++\projet\reference.h(28) : see declaration of '<'
donc si vous pouvez m'eclaircir sur ces obscurs erreurs je vous remercie d'avance