Here is a simple example given to illustrate overriding an operator in C++. I don't understand the meaning of the & in 'CVector&' in lines 9 and 12. It doesn't look like they are passing the address of a CVector, it seems like the & can be ommitted, since the operator is just taking in a CVector as a parameter.
#include <iostream>
using namespace std;
class CVector {
public:
int x,y;
CVector () {};
CVector (int a,int b) : x(a), y(b) {}
CVector operator + (const CVector&);
};
CVector CVector::operator+ (const CVector& param) {
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return temp;
}
int main ()
{
CVector foo (3,1);
CVector bar (1,2);
CVector result;
result = foo + bar;
cout << result.x << ',' << result.y << '\n';
return 0;
}