理论上应该是iostream包含了istream和ostream。。。但是如果你只想使用ostream中的某个功能却使用了这个iostream,而iostream比较大,又包含了istream,那么这样的调用不是浪费资源嘛。。。很多东西都是为了节省资源。。。。
IO类型定义在三个独立的头文件中:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象。
iostream类型由istream和ostream两者派生而来。这以为着iostream对象共享了它的两个父类的接口。也就是说,可使用iostream类型在同一个流上实现输入和输出操作。
单独使用istream可以实现输入,单独使用ostream可以实现输出。
此外,istream还是ifstream的基类,后者是读取文件输入的库。ostream是ostream的基类,后者实现文件输出的库。
可见,istream(ostream)是一个通用的实现窗口和文件输入(输出)的基类,所以不可缺少。