【发布时间】:2016-06-26 21:27:27
【问题描述】:
在 Visual Studio 2013 CPlusPlus 项目中编写我自己的矢量类(用于游戏引擎)并重载“+”运算符(使用 VC 运行时 120),这会引发编译器错误:
错误:此运算符函数的参数过多。
下面Vector.hpp文件中的代码sn-p。
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;
}
};
我在这里做错了什么?不想让我的操作符重载非成员函数。
【问题讨论】:
-
Vector operator+(const Vector& p1, Vector& p2)应该被声明出类 -
作为一个成员函数,它有
this隐式作为第一个参数,但你想再提供两个
标签: c++ operator-overloading operators