Operatorenüberladung
-
Hallo,
ich habe wieder ein Problem mit der Operatorenüberladung.
Ich habe eine Klasse Vector3 definiert, etwa so:#ifndef _VECTOR3_H_ #define _VECTOR3_H_ class Vector3 { public: Vector3(void); ~Vector3(void); Vector3(const Vector3&); Vector3(const double, const double, const double); public: double x; double y; double z; }; #endif
und wollte dann noch den + Operatoren überladen.
So:inline Vector3 operator + (const Vector3& a, const Vector3& b) { return Vector3(a.x + b.x, a.y + b.y, a.z + b.z); }
Das Problem ist diese Fehlermeldung:
Error: Zu viele Parameter für diese Funktion.
Wenn ich nur einen Parameter annehme, gibt es keine Fehlermeldung!
Was ist da los ?
Danke für eure Hilfe
Player894
-
Eine operator+ Implementierung innerhalb einer Klasse nimmt nur einen oder gar keinen Parameter entgegen. Im globalen Namensraum werden zwei Parameter verlangt. Ich würde mal sagen Du hast operator+ innerhalb der Klasse definiert.
-
Schmeiss bitte Kopierkonstruktor und Destruktor weg. Die brauchst du hier nicht selbst deklarieren/definieren. Das kriegt der Compiler schon selbst hin.
-
Hier steht vermutlich/hoffentlich drin was du wissen willst: http://www.c-plusplus.net/forum/232010