黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难

看了这么久才发现原来有记笔记功能...
P143文件操作
C++文件操作头文件<fstream>
(file stream--文件流)
文件类型:
1.文本文件:以ASCII码形式存在计算机中
2.二进制文件
文件操作三大类:
1.ofstream:写操作
2.ifstream:读操作
3.fstream:可读可写
写文件:
1.包含头文件
2.创建流对象(文件输出流,文件输入流等
3.打开文件
4.写数据
5.关闭文件
打开方式:
ios::in 只读
ios::out 只写
ios::ate (at the end)文件指针指向文件尾
ios::trunc 先删除文件,再创造文件
ios::binary 二进制方式
打开方式可以配合使用,在打开方式之间用“|”(位或)隔开
一点想法:
感觉ofstream类和ifstream类的功能与fstream类重合了呀,只读和只写有点像常量的感觉,限制读写权限是担心会进行不必要的读写吗?
还好奥赛有教一点重定向的文件读写,书上说重定向不是很严格。确实,如果在重定向的文件里用while的条件语句进行文件的读写会没办法关闭和再重定向文件,这真是很奇怪的事情,明明都遇到EOF了不是吗?
还有就是文件类型,文件类型有很多吧,难道mp3,mp4之类的文件都归到二进制文件吗?
P148职工管理系统
1.需求分析:
用C++实现一个基于多态的职工管理系统
公司职工分三类:普通员工,经理,董事会(老板)
职工的属性有:姓名,编号,岗位,职责,(工资,加钱扣钱记录,绩点)
普通员工职责:完成经理任务
经理职责:完成董事会任务,可以下发任务给员工
老板职责:管理公司所有事务
管理系统需要实现的功能:
1.退出管理程序
2.增加职工信息(可批量添加)
3.显示职工信息
4.删除职工信息
5.修改职工信息
6.查找职工信息
7.给职工按一定规则排序
8.格式化管理系统(清空所有信息)
2.创建项目
3.创建管理类
管理类负责内容:
1.UI
2.对职工的增删查改
3.与文件的读写交互
创建管理类方法:
在头文件和源代码中分别创建h和cpp文件
头文件只写接口,对应的CPP写实现
4. 创建职工类
———————————————
想了想,感觉抄笔记效率太低了,以后就只写一点问题,感受和犯过的错误了。
- 坑:基类的虚函数应写成纯虚函数或者空实现!不能写成声明的样子(即既没有=0,也没有函数体)
- 问题:在类外实现构造函数时好像不能用this初始化列表,这是因为this指针是在函数体内才进行定向的吗?
- P202 用swap压缩容器的空间:vector<int>(v).swap(v);这里相当于用拷贝构造实例化了一个匿名对象,这个匿名对象的大小和容量相等,都等于v的大小.然后交换,结束后释放匿名对象(即交换前的大容量的vector)。似乎会造成原本向量v的迭代器变成野指针