Как мой учитель учил, я использовал для реализации оператора < < вреализации оператор << право
ostream &operator<<(ostream &out, const MyClass &c)
{
cout << someVariables;
return out;
}
Но я понял, мы получаем в ostream
объект, почему woldn't мы используем это? Я попробовал и это сработало:
ostream &operator<<(ostream &out, const MyClass &c)
{
out << 123;
return out;
}
что я должен использовать? в чем преимущества каждого из них?
Первый будет ** всегда ** печатать на 'cout', даже если вы используете другой поток. Второй будет печатать в предоставленном потоке. Подумайте о чем-то вроде 'aStream << MyClass()'. –
Зачем вам нужно 'some_stream_that_is_not_cout << some_object' писать в' cout'? \ – Peter
Преимущество второго заключается в том, что, в отличие от первого, это не совсем неправильно. – molbdnilo