Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Почему нужно возвращать ссылку на объект iostream

#cpp #ооп


При перегрузке оператора вывода, зачем возвращать ссылку на объект iostream, а не
просто объект iostream?

class A
{
public:
int m_a;
};
ostream& operator<<(ostream left, A a)
{
cout << a.m_a;
return left;
}

    


Ответы

Ответ 1



Объекты класса std::ostream не являются копируемыми. У этого класса конструктор копирования и копирующий оператор присваивания определены как удалённые. Поэтому если из определения оператора вы уберете ссылку на поток, то компилятор сообщит об ошибке.

Комментариев нет:

Отправить комментарий