ошибка 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;
    }
};

Что я здесь не так делаю? Не хочу, чтобы мой оператор перегружал функцию, не являющуюся членом.

Ответы на вопрос(2)

Ваш ответ на вопрос