1.dynamic_cast
2.const_cast
3.static_cast
4.reinterpret_cast
語法如下:
dynamic_cast(expression)
例:high * p1;
low * p2;
p1 = dynamic_cast(p2);
該運算子的用途是使得能夠在層次結構中向上進行轉換。
const_cast只有一種用途的型別轉換,即改變值為const或volatile。
語法如下:
const_cast(expression)
type_name和expression型別必須相同
例:high bar;
const high *pbar = &bar;
high *pb = const_cast(pbar);
語法如下:
const_cast(expression)
僅當type_name可被隱式轉換為expression所屬的型別或expression可被隱式轉換為type_name所屬的型別時,上述轉換才是合法的。
high bar;
low blow;
high* pb = static_cast(&blow);
low *p1 = static_cast(&bar);
語法如下:
reinterpret_cast(expression)
例:struct dat;
long value = 0xa224b118;
dat * pd = reinterpret_cast(&value);
c 基礎知識day9
1.異常在類層次間的使用 案例 設計乙個陣列類 myarray,過載操作,陣列初始化時,對陣列的個數進行有效檢查 index 0 丟擲異常enegative index 0 丟擲異常 ezero 3 index 1000丟擲異常etoobig 4 index 10 丟擲異常etoosmall 5 e...
day9 函式基礎知識,裝飾器
個人理解裝飾器 無參裝飾器 功能用來拓展函式 為原函式新增其他功能 原則 1 原始碼不動 2 呼叫方式不變 1 既要新增新功能又要保持原函式 不變,那麼只能重新寫乙個函式 以outer函式為例 將原函式傳入outer函式中,然後在outer函式中新增新功能拓展函式,函式的呼叫巢狀 2 但是有要求呼叫...
pwn學習日記Day9 基礎知識積累
if up n and c 接收到的上乙個字元為回車符,而當前接收不到新字元,則 buf buf 1 刪除puts函式輸出的末尾回車符 buf x00 breakputs輸出完後還有其他輸出 if up n and c x 一定要找到洩漏資訊的字串特徵 data buf 1 data x00 bre...