17.1.2 流、缓冲区和iostream文件
iostream(以前为iosteam.h)文件中包含一些专门设计用来实现、管理流和缓冲区的类。
C++98 版本C++ I/O定义了一些类模板,以支持char和wchar_t数据;
C++11 添加了char16_t 和char32_t 具体化;
通过使用typedef工具,C++使得这些模板char具体化能够模仿传统的非模板 I/O 实现。
其中的一些类
类 | 作用 | 基类 |
streambuf | 管理输入/输出缓冲区的内存 | / |
ios | 一般流属性,包括一个指向streambuf对象的指针 | / |
ostream | 输出方法 | ios |
istream | 输入方法 | ios |
iostream | 从istream和ostream继承了输入和输出方法 | ostream、istream |
- streambuf类为缓冲区提供了内存,并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法;
- ios_base类表示流的一般特征,如是否可读取、是二进制流还是文本流等;
- ios类基于ios_base,其中包括了一个指向steambuf对象的指针成员;
- ostream类是从ios类派生而来的,提供了输出方法;
- istream类也是从ios类派生而来的,提供了输入方法;
- iostream类是基于istream和ostream类的,因此继承了输入方法和输出方法;
创建ostream类对象这样的对象将自动打开一个流,自动创建缓冲区,并将其与流关联起来,同时使得能够使用类成员函数。