Erreur compilation

marlinne Messages postés 24 Statut Membre -  
dodo7263 Messages postés 719 Statut Membre -
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 719 Statut Membre 18
 
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