Возможно, вы забыли #include <iostream>
?Без этого вы ожидаете получить сообщение об ошибке, подобное тому, которое вы цитировали.
Как только вы это исправите, я ожидаю увидеть пару других предупреждений / ошибок.Во-первых, вы передаете point
по ссылке на const Point
, хотя operator>>
, кажется, модифицирует переданный Point
(что и ожидалось).Вы, вероятно, хотите удалить const
.
Во-вторых, вы объявили, что operator>>
вернул std::istream &
, но не смогли ничего вернуть.Вы, вероятно, хотите добавить return is;
непосредственно перед его окончанием.
Этот код компилируется:
#include <iostream>
struct Point {
double x;
double y;
void setx(double x_) { x = x_; }
void sety(double y_) { y = y_; }
};
std::istream& operator >>(std::istream& is, Point& point)
{
double temp;
is >> temp;
point.setx(temp);
is.ignore(3,';');
is >> temp;
point.sety(temp);
is.ignore(3,';');
return is;
}