黑馬程序員匠心之作|C++教程從0到1入門編程,學習編程不再難

看了這么久才發(fā)現(xiàn)原來有記筆記功能...
P143文件操作?
C++文件操作頭文件<fstream>
(file stream--文件流)
文件類型:
1.文本文件:以ASCII碼形式存在計算機中
2.二進制文件
文件操作三大類:
1.ofstream:寫操作
2.ifstream:讀操作
3.fstream:可讀可寫
寫文件:
1.包含頭文件
2.創(chuàng)建流對象(文件輸出流,文件輸入流等
3.打開文件
4.寫數(shù)據(jù)
5.關閉文件
打開方式:
ios::in 只讀
ios::out 只寫
ios::ate (at the end)文件指針指向文件尾
ios::trunc 先刪除文件,再創(chuàng)造文件
ios::binary 二進制方式
打開方式可以配合使用,在打開方式之間用“|”(位或)隔開
一點想法:
感覺ofstream類和ifstream類的功能與fstream類重合了呀,只讀和只寫有點像常量的感覺,限制讀寫權(quán)限是擔心會進行不必要的讀寫嗎?
還好奧賽有教一點重定向的文件讀寫,書上說重定向不是很嚴格。確實,如果在重定向的文件里用while的條件語句進行文件的讀寫會沒辦法關閉和再重定向文件,這真是很奇怪的事情,明明都遇到EOF了不是嗎?
還有就是文件類型,文件類型有很多吧,難道m(xù)p3,mp4之類的文件都歸到二進制文件嗎?
P148職工管理系統(tǒng)
1.需求分析:
用C++實現(xiàn)一個基于多態(tài)的職工管理系統(tǒng)
公司職工分三類:普通員工,經(jīng)理,董事會(老板)
職工的屬性有:姓名,編號,崗位,職責,(工資,加錢扣錢記錄,績點)
普通員工職責:完成經(jīng)理任務
經(jīng)理職責:完成董事會任務,可以下發(fā)任務給員工
老板職責:管理公司所有事務
管理系統(tǒng)需要實現(xiàn)的功能:
1.退出管理程序
2.增加職工信息(可批量添加)
3.顯示職工信息
4.刪除職工信息
5.修改職工信息
6.查找職工信息
7.給職工按一定規(guī)則排序
8.格式化管理系統(tǒng)(清空所有信息)
2.創(chuàng)建項目
3.創(chuàng)建管理類
管理類負責內(nèi)容:
1.UI
2.對職工的增刪查改
3.與文件的讀寫交互
創(chuàng)建管理類方法:
在頭文件和源代碼中分別創(chuàng)建h和cpp文件
頭文件只寫接口,對應的CPP寫實現(xiàn)
4. 創(chuàng)建職工類
———————————————
想了想,感覺抄筆記效率太低了,以后就只寫一點問題,感受和犯過的錯誤了。
- 坑:基類的虛函數(shù)應寫成純虛函數(shù)或者空實現(xiàn)!不能寫成聲明的樣子(即既沒有=0,也沒有函數(shù)體)
- 問題:在類外實現(xiàn)構(gòu)造函數(shù)時好像不能用this初始化列表,這是因為this指針是在函數(shù)體內(nèi)才進行定向的嗎?
- P202 用swap壓縮容器的空間:vector<int>(v).swap(v);這里相當于用拷貝構(gòu)造實例化了一個匿名對象,這個匿名對象的大小和容量相等,都等于v的大小.然后交換,結(jié)束后釋放匿名對象(即交換前的大容量的vector)。似乎會造成原本向量v的迭代器變成野指針