C++流类库派生关系详解:istream、ostream等类的派生情况
C++为实现数据的输入输出定义了一个庞大的流类库,它以ios为根基类,直接派生了四个类:输入流类、输出流类、文件流基类、字符串流基类。
这四个直接派生类又派生出其他的类,形成了标准I/O流类库、文件流类库和字符串流类库。它们的派生关系如下所...
C++为实现数据的输入输出定义了一个庞大的流类库,它以ios为根基类,直接派生了四个类:输入流类、输出流类、文件流基类、字符串流基类。
这四个直接派生类又派生出其他的类,形成了标准I/O流类库、文件流类库和字符串流类库。它们的派生关系如下所示。
输入输出流类,它同时继承了输入流类和输出流类。
输入文件流类,它同时继承了输入流类和文件流基类。
输出文件流类,它同时继承了输出流类和文件流基类。
输入输出文件流类,它同时继承了输入输出流类和文件流基类。
输入字符串流类,它同时继承了输入流类和字符串流基类。
输出字符串流类,它同时继承了输出流类和字符串流基类。
输入输出字符串流类,它同时继承了输入输出流类和字符串流基类。

其中的每一个类都称作相应的流或流类,用以完成某一方面的功能,根据一个流或流类定义出的对象也时常称为流对象。它们之间的派生关系如图1所示。

图1 I/O类库关系
注意:图1中的虚线表示此处是虚继承,实线表示一般的继承关系。
C++流类库中定义的各种流可以供用户直接使用,它们分别包含在、、三个头文件中,其包含情况如下所示:
(1)进行标准I/O操作时使用头文件,它包含ios、、和等类。
(2)进行文件I/O操作时使用头文件,它包含、、和等类。
(3)进行串I/O操作时使用头文件,它包含、、等类。
























