请花点时间查看下面的代码并回答我的问题
class Vector
{
public:
int x, y;
/* Constructor / destructor / Other methods */
Vector operator + (Vector & OtherVector);
Vector & operator += (Vector & OtherVector);
};
Vector Vector::operator + (Vector & OtherVector) // LINE 6
{
Vector TempVector;
TempVector.x = x + OtherVector.x;
TempVector.y = y + OtherVector.y;
return TempVector;
}
Vector & Vector::operator += (Vector & OtherVector)
{
x += OtherVector.x;
y += OtherVector.y;
return * this;
}
Vector VectorOne;
Vector VectorTwo;
Vector VectorThree;
/* Do something with vectors */
VectorOne = VectorTwo + VectorThree;
VectorThree += VectorOne;
该代码是从一本书中摘录的,但其中没有很好地解释。具体来说,我无法理解第 6 行的程序。构造函数和运算符都没有重载。请解释操作符重载和复制构造函数在这个程序中是如何工作的。
编辑:为什么我们使用引用运算符?