输入输出库:
C++本身不包含输入输出功能,C++标准库提供一套用于输入输出的类库
输入输出库的类层次结构异常复杂,实现结合多态和多重继承机制,利用模版类实现
输入输出库流类层次:
1、基类 ios_base 描述类的基本性质,但不考虑流的字符集
2、basic_ios继承ios_base 描述了类的基本性质,而且描述了流的字符集
3、派生类basic_istream和basic_ostream继承basic_ios。
4、basic_iostream对basic_istream和basic_ostream进行多重继承。basic_ifstream basic_istringstream继承basic_istream, basic_ostringstream basic_ofstream继承basic_ostream
5、basic_stringstream和basic_fstream派生于basic_iostream
输入输出库缓冲类层次:
输入输出库提供的输入输出功能是带缓冲的输入输出,数据并不直接读入和写出,而是通过缓冲区buffer进行。
basic_streambuf为基类 basic_filebuf和basic_stringbuf派生于basic_streambuf.
basic_streambuf包含了用于处理上溢(overflow)和下溢(underflow)虚函数。上溢发生于对已满的缓冲区进行写入操作。下溢发生于对已空的缓冲区进行读取操作。