抽象基类和纯虚函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抽象基类和纯虚函数
抽象类和具体类
包含纯虚函数的类不能实例化对象,是抽象类
如果抽象类的派生类实现了所有积累中的纯虚函数,则不再是抽象类
抽象类存在的意义是作为其他类的基类,也较抽象基类
构造函数的执行顺序:从上至下
析构函数的执行顺序:从下至上
创建对象时要执行正确的构造函数
撤销对象时要执行正确的析构函数
问题:动态对象的创建和撤销
虚析构函数
动态对象的创建
动态创建的对象没有问题
New classname(···);
动态对象的撤销
Delete 基类指针;
如果基类指针指向的是派生类的对象呢?
析构函数可以声明为虚函数
Delete 基类指针;
程序会根据积累指针指向的对象的类型确定要调用的析构函数
如果基类的析构函数为虚函数,则所派生的类的析构函数都是虚函数
如果要操作具有继承关系的类的动态对象,最好使用虚析构函数
文件和流——支持大量数据的处理:输入,存储
对文件执行的操作只要求我们掌握对几个函数的操作就行
如果说你不懂对文件的操作和处理,你永远也无法选好编程,你的程序永远也写不好,操作系统能够把外设和文件统一管理。
文件可以保存程序的运行结果
文件使程序处理大量的数据成为可能
大型系统的运行需要文件支持
C++将文件看成有序的字节流
文件被打开后,操作系统为该文件的建立的一个缓冲区,或称为一个字节序列,即流
普通文件
二进制文件
文本文件
输入输出设备:键盘,显示器,打印机等
标准输入流(用指针stdin操作)
标准输出流(用指针stdout操作)
C++采用相同的方式操作普通文件和I/O设备
文件的操作
格式化输入输出(文本)
块输入输出(二进制)
文件操作过程
1.建立并打开文件
2.操作文件:读,写
3.关闭文件
打开文件或建立一个新文件
FILE *fopen(const char *filename,const char *mode);
filename——路劲及文件名
mode——打开方式
关闭文件
Int fclose(FILE *stream);
Stream——要关闭的文件
读写文件——格式化操作(文本文件)
Int fscanf(File *stream,·······);
Int fprintf(File *stream,·······);
读写文件——快读写方式(二进制文件)
size_t fwrite(const void*buffer,size_t size,size_t count,File *stream);
size_t fread(const void*buffer,size_t size,size_t count,File *stream);