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

  1. 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
  2. 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
  3. Ratiche
     
    re-

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

    Ratiche.
    0
    1. 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