首页 理论教育流类体系的概念及优点

流类体系的概念及优点

【摘要】:为了减轻程序员负担,C++将实现输入/输出操作的程序编写在若干个输入/输出类中,将用于完成输入/输出操作的类称为流类,所有流类的集合称为流类体系。实现输入与输出操作的cin与cout都是用流类定义的对象。其输入流、输出流和程序的关系如图8.1所示,从中可以看到,程序员只需使用简单的“cin>>x;”语句进行输入,使用简单的“cout<

在C++中,将数据从一个对象到另一个对象的流动抽象为“流”,也就是说,流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。

在C++中,定义变量时,系统要在内存中为其分配存储单元,程序执行时,数据输入到该存储单元中,经过运算处理后,该存储单元中的数据输出给用户,或保存在磁盘文件中。因此,数据不断地从设备流向变量,又不断地从变量流向设备。这种数据的流动就是变量与外设之间的输入/输出操作,因此,常将数据输入/输出称为输入流/输出流。

在计算机内部,数据的输入/输出操作是一件非常复杂的工作。为了减轻程序员负担,C++将实现输入/输出操作的程序编写在若干个输入/输出类中,将用于完成输入/输出操作的类称为流类,所有流类的集合称为流类体系。实现输入与输出操作的cin与cout都是用流类定义的对象。因为流类是用于完成输入/输出操作的类,所以用流类定义的对象就是流对象(简称为流),流向程序员提供输入/输出接口,该接口可使得程序的设计尽可能与所访问的具体设备无关。如用户使用写操作成员函数可以实现对一个磁盘文件的写操作,也可以实现将输出信息送到显示器显示,还可以实现将输出信息送到打印机打印,从而大大减轻程序员的工作量。

例如,有如下程序:(www.chuimin.cn)

其中,x是一个整型变量,在内存中给它分配一个长度为4的存储空间。程序执行时,先从键盘获取一个整数并存放在x中,然后将其输出到显示器上。其输入流、输出流和程序的关系如图8.1所示,从中可以看到,程序员只需使用简单的“cin>>x;”语句进行输入,使用简单的“cout<<x;”语句进行输出,这就是使用流的优点。

图8.1 变量和输入/输出设备的数据流动