小编A.B*_*.B.的帖子

错误C2804:二进制'operator +'有太多参数(用VC 120编译)

编写我自己的矢量类(用于游戏引擎)并在Visual Studio 2013 CPlusPlus项目中重载'+'运算符(使用VC运行时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;
    }
};
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我在这做错了什么?不想让我的运算符超载非成员函数.

c++ operator-overloading operators

3
推荐指数
1
解决办法
5267
查看次数

标签 统计

c++ ×1

operator-overloading ×1

operators ×1