微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 为什么我要单独包含iostream和ostream?

参见英文答案 > iostream vs ostream what is different?5个
我注意到许多人分别在C程序中包含iostream和ostream,如下所示:
#include <iostream>
#include <ostream>
int main()
{
}

为什么有人这样做?由于iostream继承自ostream,它应该包含其中的所有内容,对吧?有一些不明原因吗?简单(std :: cout)代码怎么样?

解决方法

尽管stringstream继承自iostream,但它并未在< iostream>中声明.头. < iostream> header包含iostream类型的定义以及着名的cout,cerr,cin和clog类型,但不包含其他类型的iostream(例如,文件流).对于这些,您需要显式#include必需的头文件.

编辑:在回答您修改后的问题时,我提出了C规范,有趣的是它没有说< iostream>必须包括< ostream>或者< istream>.实际上,只需包含< iosfwd>就可以逃脱.因此,可以#include< iostream>没有实际获得istream或ostream的完整类定义.只有明确包含这些头文件才能保证这些类的定义,而不仅仅是前向声明,是可见的.

原文地址:https://www.jb51.cc/c/110673.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐