I've got another question. I'm not totally grasping this overloading operators concept, and the book I'm trying to (partially) learn from isn't helping matters. It gives me the following program:

Code:
class Vector
{
public:
    int x, y;
    Vector operator + (Vector & OtherVector);
    Vecotr & operator += (Vector & OtherVector);
}

Vector Vector::operator + (Vector & OtherVector)
{
    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;

VectorOne = VectorTwo + VectorThree;
VectorThree += VectorOne;
Besides from the obvious things like lacking main(), I would appreciate it if someone would explain this code block to me, as I can't really understand the book. What's with all the references? Also, this is the first time I've seen 'this' - could someone tell me what that's all about also?

Thanks alot.