Erreur compilation

Fermé
marlinne Messages postés 20 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 13 octobre 2013 - 13 oct. 2013 à 07:46
dodo7263 Messages postés 614 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 - 14 oct. 2013 à 19:03
Bonjour,

en fait j'ai défini un opérateur comme fonction amie d'une classe comme ceci :
.h
friend Vecteur3D operator+( const Vecteur3D& , const Vecteur3D& );

.cpp
Vecteur3D operator+(const Vecteur3D& v1, const Vecteur3D& v2){
Vecteur3D v3;
v3.x = v1.x + v2.x;
v3.y = v1.y + v2.y;
v3.z = v1.z + v2.z;
return v3;
}
et on me dit : [Error] C:\Program Files\C-Free Standard\samples\TP5_C++\Vecteur3D.cpp:31: 'Vecteur3D::operator +(const Vecteur3D &, const Vecteur3D &)' must take either zero or one argument

ce n'est pas logique tout ca ...quelqu'un pourrait m'aider ?!
Merci d'avance ..

1 réponse

dodo7263 Messages postés 614 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 18
14 oct. 2013 à 19:03
Salut,

Souvent ce genre d'erreur est due au fait que tu déclares ta fonction comme une fonction membre de ta classe. Je m'explique :
L'erreur est que tu essaies de définir un membre
operator+
prenant 2 arguments ce qui signifie qu'elle en prends 3 car tu as le paramètre implicite this. Une une fonction amie n'est pas une fonction membre de ta class.

@++

SD


0