Probleme de redefinition d'operator en C++
raoul31
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
char snipeur -
char snipeur -
Bonjour je developpe un projet en C++ et j'ai besoin de redefinir les operateurs de comparaisons
je cree ma classe de cette facon :
voila pour la declaration et pour la definition de la redeclaration des operateurs je vais ceci :
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
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
A voir également:
- Cannot use 'in' operator to search for 'length' in
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Girl in the basement streaming vf - Forum Cinéma / Télé
- A javascript error occurred in the main process - Forum Matériel & Système
- Av in - Forum Audio
- Spybot search and destroy - Télécharger - Antivirus & Antimalwares
2 réponses
a mon avis, il suffit d'enlever les "reference" dans la declaration des operator dnas la class
ça donne :
Class reference{
...
int operator<(const reference &)
...
}
voila. a toi de dire si ça marche maintenant.
ça donne :
Class reference{
...
int operator<(const reference &)
...
}
voila. a toi de dire si ça marche maintenant.
je crois qu'il ne faut pas mettre le mot reference entre les accolades
dans le fichier hpp (là où on déclare les prototypes)
c'est à dire:
int reference operator ==(const reference &);
à remplacer par
class reference
{
int operator ==(const reference &);
int operator <=
etc...
etc...
}
j'ai pas le temps de vérifier mais avec c++ builder
je crois que ça le fait
a+
dans le fichier hpp (là où on déclare les prototypes)
c'est à dire:
int reference operator ==(const reference &);
à remplacer par
class reference
{
int operator ==(const reference &);
int operator <=
etc...
etc...
}
j'ai pas le temps de vérifier mais avec c++ builder
je crois que ça le fait
a+