Прототипами для писателя и читателя являются
class MyClass;
std::ostream& operator<< (std::ostream stream&, const MyClass &obj)
{
obj->WriteTo(stream);
return stream;
}
std::istream& operator>> (std::istream stream&, MyClass &obj)
{
obj->ReadFrom(stream);
return stream;
}
Эти функции (особенно писателя) вызывают потоковые функции более низкого уровня для MyClass
членов.
Наличие std::iostream
Производный от std::istream
и std::ostream
означает, что вы можете передать экземпляр std::iostream
любой функции, и он автоматически передаст правильную часть std::iostream
in.
std::istream
и std::ostream
статически получены из std::ios
, который содержит общий код для них.