без использования собственного класса то есть перегрузить родной cout<< под определенную задачу(вывод структуры не расписывая все ее члены) . можно ли как то прикрепить к ostream мою перегрузку ?
Ты можешь перегружать операторы только для своих типов
Да, можешь без класса std::ostream& operator<<(std::ostream& out, const Type& value) { ... }
Для собственной структуры ты можешь определить <<, но расписать все члены так или иначе придется.
спасибо сперва побоялся сделать и в лобовую написать перегрузку выше main но уже и сам допер)
Он вроде имел ввиду определить оператор снаружи класса
история про то что бы не писать собственный класс а добавит перегрузку для ostream
Он всегда снаружи и определяется
А через friend?
Да, это и есть френд, просто если структура, то там по умолчанию не нужен friend
Прата, стр. 543 )
Как это, не расписывая все ее члены?
Видимо с помощью магии вне Хогвартса
Ты не сможешь вывести члены не расписывая их)
и что там ?
Там рассказывается об ограничениях при создании перегруженных операторов. Среди них как раз то, что хотя бы одним аргументом такого оператора должен быть тип, определяемый пользователем.
Для чужих тоже (перегрузка для ostream)
один из параметров должен быть пользовательский тип
Нет, может быть любой тоже
Обсуждают сегодня