Rechercher : dans
Par :

Erreur compilation C++

Dernière réponse le 5 mai 2003 à 13:43:07 Ratiche, le 3 mai 2003 à 23:51:35 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « Erreur compilation C++ » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Compiler du C sous Linux/UNIX VoirSous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer (aptitude install gcc). gcc Syntaxe de GCC gcc Tout d'abord, il faut savoir...
Télécharger Code::Blocks Studio VoirCode::Blocks est un IDE multi-plateforme (Linux, Mac et Windows) entièrement codé en C++. Code::Blocks est basé sur un système de plugins, ce qui permet de le faire évoluer très facilement sans devoir le recompiler. La compilation, qui peut se...

1

pouet, le 5 mai 2003 à 02:44:27
  • +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

Répondre à pouet

2

Ratiche, le 5 mai 2003 à 11:03:22

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.

Répondre à Ratiche

3

Ratiche, le 5 mai 2003 à 11:06:09

Re-

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

Ratiche.

Répondre à Ratiche

4

 pouet, le 5 mai 2003 à 13:43:07

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

Répondre à pouet