Вот простой пример, иллюстрирующий переопределение оператора в C++. Я не понимаю значения & в «CVector &» в строках 9 и 12. Не похоже, что они передают адрес CVector, кажется, что & можно опустить, так как оператор просто взятие в CVector в качестве параметра.В чем смысл & следовать идентификатору в C++?
#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;
}
Это пропуск по ссылке. Таким образом, это просто как передача адреса, за исключением того, что вам не нужно разыменовывать переменную, как указатель на ее использование. – spektr
Если вы не знаете о ссылках на C++, вам может потребоваться резервное копирование от перегрузки оператора и более подробное изложение того, что вы изучаете. – crashmstr