需要从 istream 和 ostream 派生 iostream

need for deriving iostream from istream and ostream

本文关键字:ostream 派生 iostream istream      更新时间:2023-10-16

在学习I/O时我遇到了:

IOstream:iStream从流读取,oStream写入流,IOeStream读取和写入流:派生自iStream和Ostream

如果istreamostream做同样的工作,继承的需要是什么?

正是通过使iostream继承istream和从ostream,您将获得一个支持输入和输出以及两个接口(来自istreamostream)的类。这并不意味着功能是重复的,它只是意味着istreamostream的接口及其实现正在被重用。

作家和读者的原型是

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'es 成员上调用较低级别的流函数。

std::istreamstd::ostream派生std::iostream意味着您可以将std::iostream实例传递给任一函数,并且它会自动传入std::iostream的正确部分。

std::istreamstd::ostream静态派生自包含它们通用代码的std::ios