C 學習筆記 day14

2021-06-23 07:11:11 字數 1610 閱讀 4101

1、對檔案的分類

(1)文字檔案:每個位元組都是有效的可顯示的ascii碼,getline() , >>

(2)二進位制檔案:位元組是連續的,不能用vi , more檢視檔案內容,read按位元組數讀取 , write

100 是整數的100,佔4個位元組

「100」是字元陣列,佔3個位元組

2、異常

(1)人為錯誤:由於程式設計師編碼不當

客觀錯誤:不能避免的錯誤

(2)通過返回值判斷程式的錯誤情況,對呼叫者的要求高,要寫if()else()判斷,而且對於返回值的含義要非常的清楚

所以c++中提供了異常處理機制

3  異常的工作原理:

1) 程式設計師寫的**在出現意外的地方自動產生乙個異常,然後丟擲乙個異常物件。

2) 物件被傳遞到負責異常處理的地方。

throw1;  //丟擲異常,讓呼叫者處理

3) 由負責異常處理的**進行統一的異常處理。 try{}catch(){}

4) 異常物件包含有意外發生的詳細資訊。

4  異常**的格式:

丟擲: throw 異常名字;

處理: ppt368

try catch( 異常1  int) catch( 異常2  const char* ) catch(){}處理異常是一種強制手段,出現異常,程序結束

catch()中的異常型別如果與丟擲的異常型別不一致,則捕獲不到

5  每個catch只能處理一種型別的異常,catch塊會依次執行。

6  catch(...)

可以捕獲任意型別的異常,但是它不能判斷是什麼型別的異常,一般把它放在最後乙個catch塊。

但這種捕獲沒有針對性

7 異常的傳播特性:

層級傳播:異常會逐層丟擲

產生異常之後,程式立即跳轉到最近的一層捕獲異常的語句,如果當前沒有捕獲語句,或者沒有匹配的catch塊,那麼程式會跳出當前的函式回到呼叫的地方。

如果向上跳到了main函式,還是沒有處理異常,程式就會終止程序。

8、封裝異常(1)使用字串描述異常

(2)制定異常號 errorno.

(3)disp();            

當捕獲的異常存在繼承關係的時候,要先捕獲子類異常,再捕獲父類異常              

9、內聯類

把乙個類寫到另乙個類的內部

異常一般會做成內聯類 a::exp ,靠字首制定自己的命名空間  

內聯類,private修飾只能在本來中使用,對外是隱藏的,只有public 修飾的才能在外面使用

10、異常總結

(1)檢查錯誤的一種手段

(2)可以用簡單資料型別定義,還可以自定義型別

(3)產生 throw e; 異常物件

處理 try{}catch(異常型別){} --- 異常型別要與throw丟擲的一樣

(4)傳播

11、銀行專案 --- 物件導向

需求分析的時候,要畫用力圖

biz object 完成業務邏輯

value object 運算元據(account)

menu 收集使用者資訊,使用者選擇的業務

biz 針對某項業務收集資訊

da  提供檔案訪問服務

account 儲存資料

C 學習筆記day14 標準C語言

之前的筆記提到過,全域性變數是可以讓這個程式的其他原始檔使用的,但是在使用前需要宣告,告知編譯器,這個全域性變數在其他的原始檔中,否則編譯器會報錯。extern int num 乙個全域性變數可能會被其他多個原始檔使用,如果每次都在要使用這個全域性變數的原始檔中宣告是比較不方便的。由於全域性變數的這...

Java學習之路 day14

接著昨天的多型知識點總結 1.instanceof 物件型別的校驗,將返回乙個boolean值 instanceof 對型別進行判斷 animal animal new cat animal instanceof cat 判斷建立的animal是否為cat animal instanceof dog...

C 基礎程式設計DAY14

百錢買百雞問題 雞翁一值錢五,雞母一值錢三,雞雛三值錢一,百錢買百雞,問雞翁 母 雛各幾何?include include include using namespace std int main end time clock cout time clock endl system pause re...