A voir également:
- Probleme de redéfinition d'operateur << et +
- 0650 quel opérateur - Forum Opérateurs & Réseaux mobiles
- 0473 quel opérateur - Forum Loisirs / Divertissements
- 0466 quel opérateur - Forum Mobile
- 0758 quel opérateur - Forum Opérateurs & Réseaux mobiles
- 0778 quel opérateur ✓ - Forum Mobile
2 réponses
J'ai évidemment pas lu le code qui n'est pas indenté (donc illisible !!!).
‘const Matrix Matrix::operator+(Matrix, Matrix)’ must take either zero or one argument
Le message du compilateur est explicite: une redéfinition d'un opérateur dans une classe ne peut avoir que zéro ou un argument... et toi tu en mets deux !!!
Tu n'as pas pigé que tu es dans une classe; donc lors de l'appel de l'opérateur, tu le fais avec un objet... donc tu as déjà un argument de connu.
Conclusion: avec un opérateur monadique, tu ne passes pas de paramètres, et avec le opérateur dyadique, tu passes deux paramètres
Bonne continuation..
‘const Matrix Matrix::operator+(Matrix, Matrix)’ must take either zero or one argument
Le message du compilateur est explicite: une redéfinition d'un opérateur dans une classe ne peut avoir que zéro ou un argument... et toi tu en mets deux !!!
Tu n'as pas pigé que tu es dans une classe; donc lors de l'appel de l'opérateur, tu le fais avec un objet... donc tu as déjà un argument de connu.
Conclusion: avec un opérateur monadique, tu ne passes pas de paramètres, et avec le opérateur dyadique, tu passes deux paramètres
Bonne continuation..
il me genere le erreur suivate
matrice.cpp:94: erreur: ‘const Matrix Matrix::operator+(Matrix, Matrix)’ must take either zero or one argument
matrice.cpp: In member function ‘std::ostream& Matrix::operator<<(Matrix&)’:
matrice.cpp:122: erreur: expected initializer before ‘<<’ token
matrice.cpp:128: erreur: ‘s’ was not declared in this scope
matrice.cpp:130: erreur: ‘s’ was not declared in this scope
matrice.cpp:132: erreur: ‘s’ was not declared in this scope
matrice.cpp:94: erreur: ‘const Matrix Matrix::operator+(Matrix, Matrix)’ must take either zero or one argument
matrice.cpp: In member function ‘std::ostream& Matrix::operator<<(Matrix&)’:
matrice.cpp:122: erreur: expected initializer before ‘<<’ token
matrice.cpp:128: erreur: ‘s’ was not declared in this scope
matrice.cpp:130: erreur: ‘s’ was not declared in this scope
matrice.cpp:132: erreur: ‘s’ was not declared in this scope
20 juin 2009 à 22:51
Avec un opérateur dyadique, tu passes un seul paramètre.
Bonne soirée.
21 juin 2009 à 17:24
Modifié par moreno le 9/12/2010 à 15:11
friend const Matrix::operator+(Matrix,Matrix)
puis dans le cpp t'auras pas de "Matrix::" préfixant ta fonction :
const operator+(Matrix m1,Matrix m2)
quand une fonction est friend, elle ne fait pas partie de la classe mais elle a connaissance de tous les champs (privés et publics) de ta classe