面向对象技术第九章精选PPT.ppt
《面向对象技术第九章精选PPT.ppt》由会员分享,可在线阅读,更多相关《面向对象技术第九章精选PPT.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象技术课件第九章面向对象技术课件第九章1第1页,此课件共20页哦主要内容主要内容基本概念基本概念C+C+的流及流类库的流及流类库用户自定义类型的输入用户自定义类型的输入/输出输出文件的输入文件的输入/输出输出应用举例应用举例2第2页,此课件共20页哦基本概念基本概念 流:流:与数据传送有关系的事物叫做流,C+用流表示数据的传输操作。流总是与某一设备(如:键盘、屏幕、硬盘、软盘等)相联系。流类:流类:C+为输入/输出定义了一组不同的类(包含要进行传送的数据的结构、属性、特征和行为,都将其放在流库中),叫做流类。流的对象:流的对象:用流类声明该流类的一个对象,代表某个输入设备或输出设备,并与
2、具体的某个文件相联系,叫做流的对象。输入流:输入流:有一种流表示数据从某个载体或设备传送到内存缓冲区变量中,叫做输入流。输出流:输出流:有一种流表示数据从内存送到某个载体或设备中,叫做输出流。3第3页,此课件共20页哦7.2 C+7.2 C+的流及流类库的流及流类库 C+C+流库流库(stream library)(stream library):用派生方法建立起来的一个输入输出类库,它有两个平行的基类:streambuf类和ios类,它们在iostream.h中定义,是两个非常低级的类,所有流类均以两者之一作为其基类。一、一、streambufstreambuf类类 streambufstr
3、eambuf类主要负责缓冲区的处理。类主要负责缓冲区的处理。缓冲区由一字符序列和两个指针(输入缓冲区指针和输出缓冲区指针)组成,这两个指针指向字符要被插入或被取出的位置。streambuf类可以派生出三个类:filebuf类、strstreambuf类和conbuf类。4第4页,此课件共20页哦它们的类等级如下:它们的类等级如下:streambuf filebuf strstreambuf conbuf二、二、iosios类类 iosios类及其派生类提供用户使用流类的接口,提供了输入和输出所类及其派生类提供用户使用流类的接口,提供了输入和输出所需要的公共操作,需要的公共操作,它支持对它支持对
4、streambufstreambuf的缓冲区进行输入输出时的格式化的缓冲区进行输入输出时的格式化或非格式化转换。或非格式化转换。iosios类有四个直接派生类:类有四个直接派生类:istream(istream(输入流输入流)、ostreamostream(输出流输出流)、fstreambase(文件流文件流)、strstreambase(串流串流)。5第5页,此课件共20页哦 ios istream ostream fstreambase strstreambase 以这四种基本的流类为基础,可派生出多种实用的流类:以这四种基本的流类为基础,可派生出多种实用的流类:iostreamiostr
5、eam(输入(输入/输出流)输出流)ifstream ifstream(输入文件流)(输入文件流)ofstream ofstream(输出文件流)(输出文件流)fstream fstream(输入(输入/输出文件流)输出文件流)在在istreamistream、ostreamostream和和iostreamiostream类的基础上分别重载运算符类的基础上分别重载运算符“=”,就得到了,就得到了istream_withassignistream_withassign,ostream_withassignostream_withassign和和iostream_withassigniostre
6、am_withassign类。类。类等级如下:类等级如下:6第6页,此课件共20页哦 当开始执行当开始执行C+C+程序时,程序时,C+C+会有几个自动打开的预定义流,它们是:会有几个自动打开的预定义流,它们是:cin:cin:与标准输入设备相关的流。与标准输入设备相关的流。cout:cout:与标准输出设备相关的流。与标准输出设备相关的流。cerr cerr和和clog:clog:与标准错误输出设备相关的流。与标准错误输出设备相关的流。cerrcerr和和clogclog之间的区别是之间的区别是cerrcerr没有被缓冲,没有被缓冲,clogclog被缓冲,只有当缓冲被缓冲,只有当缓冲区满时,
7、才进行输出。区满时,才进行输出。这四个预定义的流在这四个预定义的流在iostream.hiostream.h里被说明为里被说明为withassignwithassign类的对象:类的对象:extern istream_withassign cin;extern istream_withassign cin;/等价于等价于stdinstdin extern ostream_withassign cout;extern ostream_withassign cout;/等价于等价于stdoutstdout extern ostream_withassign cerr;extern ostream_
8、withassign cerr;/等价于等价于stderrstderr extern ostream_withassign clog;extern ostream_withassign clog;/等价于带缓冲的等价于带缓冲的tderrtderr可以用可以用istreamistream和和ostreamostream等类声明自己的流对象。等类声明自己的流对象。7第7页,此课件共20页哦7.47.4用户自定义类型的输入用户自定义类型的输入/输出输出一、重载输出运算符一、重载输出运算符“”输出运算符输出运算符 也称插入运算符,有两个操作数,左操作数为也称插入运算符,有两个操作数,左操作数为ostr
9、eamostream类类型的对象,右操作数可以是一个预定义类型的变量,也可以类类型的对象,右操作数可以是一个预定义类型的变量,也可以是重载了该运算符(是重载了该运算符()的类的对象。)的类的对象。重载运算符重载运算符 的定义格式如下:的定义格式如下:ostream&operator(ostream&out,user_type&obj)ostream&operator(ostream&out,user_type&obj)outobj.item1;outobj.item1;outobj.item2;outobj.item2;outobj.item3;outobj.item3;/return out
10、;return out;一般采用一般采用友元函数友元函数形式重载。形式重载。8第8页,此课件共20页哦 书中例书中例7.77.7(p258p258)定义了二维坐标类)定义了二维坐标类coordcoord,并通过友元函数重载了输,并通过友元函数重载了输出运算符出运算符 friend ostream&operator(ostream&stream,coordfriend ostream&operator”定义格式如下:定义格式如下:istream&operator(istream&in,class_name&obj)istream&operator(istream&in,class_name&ob
11、j)inobj.item1;inobj.item1;inobj.item2;inobj.item2;inobj.item3;inobj.item3;/return in;return in;一般采用一般采用友元函数友元函数形式重载。见例形式重载。见例7.8(P260)7.8(P260)9第9页,此课件共20页哦7.57.5文件的输入文件的输入/输出输出概述概述 文件文件是具有相同类型的数据的任意序列,一般是指存放在外部介质是具有相同类型的数据的任意序列,一般是指存放在外部介质上的数据的集合。要对文件进行处理,必须首先建立一个文件。上的数据的集合。要对文件进行处理,必须首先建立一个文件。根据文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 技术 第九 精选 PPT
限制150内