В этом коде зачем положить & в const CVector & param ???Путаница в программе перегрузки оператора
мы можем использовать его как следовать
c = a + b;
c = a.operator+ (b);
во втором заявлении, b
не CVector&
типа, так вот почему я смущен.
// overloading operators example
#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;
}
Пожалуйста, прочитайте [элемент частотной перегрузки оператора] (http://stackoverflow.com/q/4421706/819272). – TemplateRex