Erreur compilation C++

Ratiche -  
 pouet -
Salut à tous,

J'ai surchargé les opérateurs suivants :

Classe& operator=(Classe& objet);
Classe operator*(Classe& objet);

Lorsque je fais :

Objet1 = Objet2 * Objet3;

...ça me sort une erreur à la compilation du type "No match pour l'opérateur... erreur interne bla bla". Sachant que les surcharges "=" et "*" marchent très bien séparément !!

D'où ça peut venir ? De l'absence de const peut être ?

Merci pour vos éclaircissements,
Ratiche.

3 réponses

pouet
 
peut etre cela vient il du fait que ton * retourne une Classe et pas une reference sur une classe.
je ne m engage pas, sans les messages d erreurs c est duifficile de se prononcer.(boule de cristaaalllle!)

--
pouet
1
Ratiche
 
salut,

merci pour ta réponse.

voici le message d'erreur puisque tu le demandes : ))

prog.cc: In function `int main (int, char **)':
prog.cc:27: no match for `Classe & = Image'
image.cc:288: candidates are: Classe &Classe::operator= (Classe &)
make: *** [prog.x] Erreur 1

Ratiche.
0
Ratiche
 
re-

ta solution n'est pas bonne puisque je créé une instance dans ma fonction operator*. obligé de la retourner donc....

Ratiche.
0
pouet
 
pas compris. je dis au lieu de ca:
Classe& operator=(Classe& objet);
Classe operator*(Classe& objet);
mets ca:
Classe& operator=(Classe& objet);
Classe& operator*(Classe& objet);
a part ca , la ligne 27 ne ferait pas de mal, etc.
c est un probleme de type, clairement.

--
pouet
0