在学习I/O时,我偶然发现:
iostream: istream从流中读取,ostream写入流,iostream读取和写入流:从istream和ostream派生
如果istream和ostream做同样的工作,那么继承的需要是什么?
发布于 2020-02-23 16:54:44
正是通过使iostream从istream和ostream继承,您得到了一个支持输入和输出以及两个接口(来自istream和ostream)的类。这并不意味着功能是重复的,它只是意味着istream和ostream的接口及其实现正在被重用。
发布于 2020-02-23 16:56:59
作者和读者的原型是
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::iostream从std::istream和std::ostream派生出来意味着您可以将std::iostream的一个实例传递给任何一个函数,并且它会自动传入std::iostream的正确部分。
std::istream和std::ostream是静态地从包含它们通用代码的std::ios派生出来的。
https://stackoverflow.com/questions/60363740
复制相似问题