Итак, по моим сведениям,
istream& operator >> (istream &in, int &n);
это объявление о том, как работает >> (или как-то перегрузить его)
Но я запутался в возвращаемом типе этой "функции", "istream&".
Если я сделаю что-то вроде cin >> x; это означает, что я вставляю ссылку на x, но я не понимаю возвращаемый тип istream & и параметр «in».
Как будет выглядеть эта функция? что в"? А что на самом деле ВОЗВРАЩАЕТСЯ? Поскольку cin >> x действительно делает что угодно, но не принимает входные данные, так почему он должен что-то возвращать?
Спасибо!
istream
. - иistream& operator >> (istream &in, int &n);
означает, чтоn
будет изменено - в отличие отconst <type>&n
- person Ted Lyngmo   schedule 27.10.2019cin >> x >> y
. - person jkb   schedule 27.10.2019&operator
нет. Имя функции —operator >>
(два токена), а&
— несвязанный токен, используемый для обозначения ссылочного типа. Так что&operator
не вещь. - person curiousguy   schedule 27.10.2019&operator
наoperator&
- это было мое ага на твой комментарий. - в ОП: вопрос. - person Ted Lyngmo   schedule 27.10.2019operator&
, аoperator>>
- person curiousguy   schedule 27.10.2019istream& operator >>
, который можно записать вместе с символами&operator
, так как в любом случае это два отдельных токена. ОП должен уточнить, есть ли адрес оператора! - person curiousguy   schedule 27.10.2019operator&
отличается от&operator
, но оно может не отражать намерения ОП; Я догадался, что он написал&operator
в заголовке, потому что эти две лексемы появляются вместе в его коде. Возможно, он имел в виду что-то вроде&operator>>(...)
. - person curiousguy   schedule 27.10.2019& operator >> (istream &in, int &n)
. Видите,&
является его частью, но не частью имени функции, которое простоoperator >>
. Он гласит: вызовoperator >>
с изменяемым lvalueistream
и одним изint
формально возвращает ссылку, то есть дает lvalue. lvalue — это выражение, которое ссылается на идентифицированный объект. - person curiousguy   schedule 27.10.2019