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


Log in to reply