ошибка C2804: двоичный «оператор +» имеет слишком много параметров (компилируется с VC 120)
Записывая свой собственный векторный класс (для игрового движка) и перегружая оператор '+' в проекте Visual Studio 2013 CPlusPlus (используя VC runtime 120), он вызывает ошибку компилятора:
Ошибка: слишком много параметров для этой операторской функции.
Фрагмент кода изVector.hpp
файл ниже.
Vector.hpp
class Vector
{
private:
double i;
double j;
double k;
public:
Vector(double _i, double _j, double _k)
{
i = _i;
j = _j;
k = _k;
}
Vector& operator+=(const Vector& p1)
{
i += p1.i;
j += p1.j;
k += p1.k;
return *this;
}
//Some other functionality...
Vector operator+(const Vector& p1, Vector& p2) //Error is thrown here...
{
Vector temp(p1);
return temp += p2;
}
};
Что я здесь не так делаю? Не хочу, чтобы мой оператор перегружал функцию, не являющуюся членом.