Ошибка с GDB, который я получаю:
main.cpp:8:49: error: ‘point point::operator+(point&, point&)’ must take either zero or one argument
Это потому, что объект, над которым вы планируете выполнить операцию, - это this
(левая сторона) итогда правая часть является аргументом.Если вы хотите использовать формат, который вы выбрали, тогда вы можете поместить объявление вне класса - т.е.
struct point
{
// note made into a struct to ensure that the below operator can access the variables.
// alternatively one could make the function a friend if that's your preference
int x,y;
};
point operator+ (const point & first, const point & second) {
// note these {} are c++11 onwards. if you don't use c++11 then
// feel free to provide your own constructor.
return point {first.x + second.x,first.y + second.y};
}