Erreur compilation

marlinne Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
dodo7263 Messages postés 614 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   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