首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从istream和ostream派生istream的需要

从istream和ostream派生istream的需要
EN

Stack Overflow用户
提问于 2020-02-23 15:25:04
回答 2查看 169关注 0票数 0

在学习I/O时,我偶然发现:

iostream: istream从流中读取,ostream写入流,iostream读取和写入流:从istream和ostream派生

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-23 16:54:44

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

票数 1
EN

Stack Overflow用户

发布于 2020-02-23 16:56:59

作者和读者的原型是

代码语言:javascript
复制
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::iostreamstd::istreamstd::ostream派生出来意味着您可以将std::iostream的一个实例传递给任何一个函数,并且它会自动传入std::iostream的正确部分。

std::istreamstd::ostream是静态地从包含它们通用代码的std::ios派生出来的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60363740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档