第十八章 22流的简介 简单

//22流的简介
/*
"流"从字面上理解是流动的意思,书面上的解释是物质从一处往另一处流动的过程
C++的输入和输出遵循了这一概念,C++的输出是将一个对像的状态下换成一个字符序列,车出到指定的地方
cout<<"hello world";
双引号中的hello word是所有输出的对像,C++的重载按位左移运算符<<将对像转换成一个向左移动的字符序列,cout则表示将其输出在计算机外部设备管理中,如显示器的屏幕上
C++的重载按位右移运算符>>表示从指定地方按照向右移动的顺序接受字符序列,然后将其转换为对像的数据成员的格式,cin则表示将该对像写入计算机内部设备中,如磁盘或者内存

由于这种操作方式类似于数据在流动,因此我们把控制数据流动的cin和cout叫做输入输出流,凡是跟输入输出流有关系的类都叫做流类,凡是实现流类功能成员函数全部合并在一个库中
该库叫做流类库,在C++中将这些流类和流类库封装起来,做成了一个类体系,以便宜于用户查找
和调用
iostream是我们经常使用的流类库头文件,该头文件中包括iostream类,ostream类和istream类等,ostream输出流类和istream输入流类同属于一个虚基类ios,ios类用来提供对流进行格工化数据的输入和输出(简写为I/O)操作和操作处理的成员函数

从ios类公有派生的istream继承了对流进行提取操作的成员函数,即控制输入函数,而从ios类公有派生的ostream则继承了对流进行插入操作的成员函数,即控制输出函数,而输入输出流类iostream则同时继承了输入和输出函数,因此iostream可看作是istream和ostream的合并,iostream可对流进行输入输出操作,该类并没有增加新的成员函数

另外ios基类还直接派生了文件流基类fstreambase和字符串流基类strstreambase
文件流基类fstreambase可以对文件流进行操作,字符串流基类strstreambase由对字会串流进行操作
输入文件流类ifstream同时继承了输入流类istream和fstreambase文件流基类,
输出文件流类oftream同时继承了ostream输出流类和和fstreambase文件流基类

输入字符串流类istream同时输入流类istream和字符串流基类strstreambase,
输出字符串流类ostream同时继承了输出流类ostream和字符串流基类strstremabase

输入输出充类iostream同时继承了输入流类istream和输入流类ostream
输入输出文件流类fstream同时同时继承了输入输入流类iostream和文件流基类fstreambase
输入输出字符串流类strstream同时继承了输入输出流类iostream和字符串流基类strstreambase


ios
  ->istream
    ->ifstream
	->istream_withassign
	->istrestream
  ->ostring
    ->ofstream
	->ostream_withassign
	->ostream

  iostream
    ->fstream
	->strstream
	->stdiostream
  
  streambuf
    ->filebuf
	->strstreambuf
	->stdiobuf


*/

  

原文地址:https://www.cnblogs.com/xiangxiaodong/p/2700740.html