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