由于您的Addition
函数是 的成员Vector
,因此您必须这样调用它:
c = Vector::Addition(a, b);
或者
c = a.Addition(b);
请注意,第一个要求Addition
函数是static,这意味着它不对具体实例(this
在函数体中)进行操作:
static Vector Addition(Vector a, Vector b);
但是你不能访问this
指针,所以你必须默认构造temp
而不是复制(顺便说一句,因为你覆盖了,所以没有使用x
)y
。
第二个使用左侧操作数作为this
实现中的指针(a
签名中没有)。
Vector Addition(Vector b)
{
Vector temp = *this;
temp.x += b.x;
temp.y += b.y;
return temp;
}
请注意,您还可以在 C++ 中重载运算符。为此,定义一个调用的非静态成员函数operator+
,它接受第二个实例(第一个实例是this
函数内的指针,它将是左侧操作数):
Vector operator+(const Vector &other) const;
实施(一种可能性):
Vector Vector::operator+(const Vector &other)
{
Vector temp = *this;
temp.x += other.x;
temp.y += other.y;
return temp;
}