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

前端之家收集整理的这篇文章主要介绍了c – 为什么我要单独包含iostream和ostream?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > iostream vs ostream what is different?5个
我注意到许多人分别在C程序中包含iostream和ostream,如下所示:
#include <iostream>
#include <ostream>
int main()
{
}
@H_301_5@为什么有人这样做?由于iostream继承自ostream,它应该包含其中的所有内容,对吧?有一些不明原因吗?简单(std :: cout)代码怎么样?

解决方法

尽管stringstream继承自iostream,但它并未在< iostream>中声明.头. < iostream> header包含iostream类型的定义以及着名的cout,cerr,cin和clog类型,但不包含其他类型的iostream(例如,文件流).对于这些,您需要显式#include必需的头文件. @H_301_5@编辑:在回答您修改后的问题时,我提出了C规范,有趣的是它没有说< iostream>必须包括< ostream>或者< istream>.实际上,只需包含< iosfwd>就可以逃脱.因此,可以#include< iostream>没有实际获得istream或ostream的完整类定义.只有明确包含这些头文件才能保证这些类的定义,而不仅仅是前向声明,是可见的.

猜你在找的C&C++相关文章