freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c標(biāo)準(zhǔn)模板庫(kù)與操作和異常處理-資料下載頁(yè)

2025-10-08 00:24本頁(yè)面
  

【正文】 include fstream using namespace std。 void main() { char ch。 ifstream tfile(payroll,ios::binary|ios::nocreate)。 if(tfile) {while(()) {streampos here = ()。 (ch)。 if(ch==39。 39。) cout\nPosition here is a space。} } else{ coutERROR: Cannot open file 39。payroll39。.endl。} ()。 } 輸入流 第十二章 異常處理 C++語(yǔ)言程序設(shè)計(jì) C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 53 本章主要內(nèi)容 ? 異常處理的基本思想 ? C++異常處理的實(shí)現(xiàn) ? 異常處理中的構(gòu)造與析構(gòu) C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 54 異常處理的基本思想 函數(shù) f()捕獲并處理異常 函數(shù) h() 引發(fā)異常 函數(shù) g() …… 調(diào)用者 異常傳播方向 調(diào)用關(guān)系 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 55 異常處理的實(shí)現(xiàn)機(jī)制 ? 拋擲異常的程序段 ...... throw 表達(dá)式 。 ...... ? 捕獲并處理異常的程序段 try 復(fù)合語(yǔ)句 catch(異常類型聲明) 復(fù)合語(yǔ)句 catch(異常類型聲明) 復(fù)合語(yǔ)句 … C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 56 異常處理的實(shí)現(xiàn)機(jī)制 ? 若有異常則通過(guò) throw操作創(chuàng)建一個(gè)異常對(duì)象并拋擲。 ? 將可能拋出異常的程序段嵌在 try塊之中??刂仆ㄟ^(guò)正常的順序執(zhí)行到達(dá) try語(yǔ)句,然后執(zhí)行 try塊內(nèi)的保護(hù)段。 ? 如果在保護(hù)段執(zhí)行期間沒(méi)有引起異常,那么跟在 try塊后的 catch子句就不執(zhí)行。程序從 try塊后跟隨的最后一個(gè) catch子句后面的語(yǔ)句繼續(xù)執(zhí)行下去。 ? catch子句按其在 try塊后出現(xiàn)的順序被檢查。匹配的catch子句將捕獲并處理異常(或繼續(xù)拋擲異常)。 ? 如果匹配的處理器未找到,則運(yùn)行函數(shù) terminate將被自動(dòng)調(diào)用,其缺省功能是調(diào)用 abort終止程序。 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 57 例 121處理除零異常 include int Div(int x,int y)。 void main() { try { cout5/2=Div(5,2)endl。 cout8/0=Div(8,0)endl。 cout7/1=Div(7,1)endl。 } catch(int) { coutexcept of deviding zero.\n。 } coutthat is ok.\n。 } int Div(int x,int y) { if(y==0) throw y。 return x/y。 } 程序運(yùn)行結(jié)果如下: 5/2=2 except of deviding zero. that is ok. C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 58 異常接口聲明 ? 可以在函數(shù)的聲明中列出這個(gè)函數(shù)可能拋擲的所有異常類型。 – 例如: void fun() throw(A, B, C, D)。 ? 若無(wú)異常接口聲明,則此函數(shù)可以拋擲任何類型的異常。 ? 不拋擲任何類型異常的函數(shù)聲明如下: void fun() throw()。 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 59 異常處理中的構(gòu)造與析構(gòu) ? 找到一個(gè)匹配的 catch異常處理后: –初始化參數(shù)。 –將從對(duì)應(yīng)的 try塊開始到異常被拋擲處之間構(gòu)造(且尚未析構(gòu))的,所有自動(dòng)對(duì)象進(jìn)行析構(gòu)。 –從最后一個(gè) catch處理之后開始恢復(fù)執(zhí)行。 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 60 例 122 異常處理時(shí)的析構(gòu) include void MyFunc( void )。 class Expt { public: Expt(){}。 ~Expt(){}。 const char *ShowReason() const { return Expt類異常。 。 } }。 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 61 class Demo { public: Demo()。 ~Demo()。 }。 Demo::Demo() { cout構(gòu)造 Demo.endl。 } Demo::~Demo() { cout析構(gòu) Demo.endl。 } C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 62 void MyFunc() { Demo D。 cout在 MyFunc()中拋擲 Expt類異常。 endl。 throw Expt()。 } int main() { cout在 main函數(shù)中。 endl。 try { cout在 try塊中,調(diào)用 MyFunc()。 endl。 MyFunc()。 } C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 63 catch( Expt E ) { cout在 catch異常處理程序中。 endl。 cout捕獲到 Expt類型異常: 。 cout()endl。 } catch( char *str ) { cout捕獲到其它的異常: strendl。} cout回到 main函數(shù)。從這里恢復(fù)執(zhí)行。 endl。 return 0。 } C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 64 程序運(yùn)行時(shí)輸出 : 在 main函數(shù)中。 在 try塊中,調(diào)用 MyFunc()。 構(gòu)造 Demo. 在 MyFunc()中拋擲 Expt類異常。 析構(gòu) Demo. 在 catch異常處理程序中。 捕獲到 Expt類型異常: Expt類異常。 回到 main函數(shù)。從這里恢復(fù)執(zhí)行。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1