Я хочу распечатать объект пользовательского типа, вот так cout << ob1;
поэтому я хочу перегрузить оператор << и я хочу вернуть значение не по ссылке, но это дает мне ошибку: в двух файлах с именем: iosfwd и ios_base.h
ostream operator<<( ostream& out, cat& rhs){
out << rhs.a << ", " << rhs.b << endl;
return out ;
}
1) Является ли это потому, что он не может создать новый объект ostream, поэтому он должен возвращаться по ссылке?
но когда я возвращаюсь по ссылке вот так:
ostream& operator<<( ostream& out, cat& rhs){
out << rhs.a << ", " << rhs.b << endl;
return out ;
}
все работает нормально.
2) любое объяснение?