При перегрузке оператора вывода, зачем возвращать ссылку на объект iostream, а не просто объект iostream?
class A
{
public:
int m_a;
};
ostream& operator<<(ostream left, A a)
{
cout << a.m_a;
return left;
}
Ответ
Объекты класса std::ostream не являются копируемыми. У этого класса конструктор копирования и копирующий оператор присваивания определены как удалённые. Поэтому если из определения оператора вы уберете ссылку на поток, то компилятор сообщит об ошибке.
Комментариев нет:
Отправить комментарий