異常和其他

2021-09-28 16:15:42 字數 903 閱讀 9799

異常rtti

將類宣告放在另乙個類中,在另乙個類中宣告的類被稱為巢狀類。

作用域

宣告位置

包含它的類是否可以使用它

從包含它的類派生而來的類是否可以使用它

在外部是否可以用

私有部分是否

否保護部分是是

否公有部分是是

是,通過類限定符來使用

對異常處理有3部分組成:

throw終止函式的執行,並使得程式沿函式呼叫序列後退,直到找到包含try塊的函式,即第乙個這樣的函式:包含能夠捕獲相應異常的try-catch。

棧解退:函式出現異常而終止,則程式將釋放棧中記憶體,但不是釋放棧的第乙個返回位址後停止,而是基繼續釋放棧,直到找到乙個位於try塊的返回位址。隨後,控制權將轉到塊尾的異常處理程式,而不是程式呼叫後面的第一條語句。

程式進行棧解退回到捕獲異常的地方時,將釋放棧中的自動儲存型變數。如果變數是類物件,將為該物件呼叫析構函式。

在乙個異常類層次結構,並處理不同的異常型別,則使用基類引用將能夠捕獲任何異常物件;而使用派生類物件只能捕獲它所屬類及從這個類派生而來的類物件。引發異常的物件將被第乙個與之匹配的catch塊捕獲,這意味著catch塊的排列順序應該與派生順序相反。

用省略號可以表示異常型別,捕獲任何異常。

執行階段型別識別

dynamic_cast(pt)

如果指向的物件(*pt)的型別為type或者是從type直接或間接派生而來的型別,則可以將指標pt轉換為type型別的指標,否則,結果為0,即空指標。

typeid運算子確定兩個物件是否為同種型別,運算子返回乙個對type_info物件的引用,接受兩種引數:

例如:typeid(magnificent)==typeid(*pg)

關於異常和其他

關於異常的幾種處理方法 1 呼叫abort abort 函式的原型位於標頭檔案cstdlib.h 或者stdlib.h 中,其典型實現是向標準錯誤流 即cerr使用的錯流 傳送abnormal program termination 程式異常終止 然後終止程式。它還返回乙個隨實現而異的值。abort...

C 異常6 其他異常特性

雖然throw catch機制類似於函式引數和函式返回機制,但是還是有些不同之處。其中之一是函式fun 中的返回語句將控制權返回到呼叫fun 的函式a中,但throw語句將控制權向上返回到第乙個這樣的函式 包含能夠捕獲相應異常的try catch組合。另乙個不同之處是,引發異常時,編譯器總是建立乙個...

第15章 友元 異常和其他

這章貌似我碰到的不多,就不多說了,以後遇到應該會回來翻書,到時候再總結。先只說一下碰到的型別轉換運算子。15.5型別轉換運算子 四種 1 dynamic cast 子類指標單向基類指標轉換。繼承,單向。2 static cast 用在有繼承關係上的指標上,基類和子類可以互相轉化,不限制方向。只限制繼...