Erreur compilation C++

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. 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
    1. 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
      1. re-

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

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