C 中四種cast轉換

2021-09-26 21:44:06 字數 488 閱讀 1341

c++中四種型別轉換是:static_cast,dynamic_cast,const_cast,reinterpret_cast

1 static_cast

用於各種隱式轉換,例如將非const轉換為const,void*轉指標(將void指標指向任意型別)等,用於多型向上轉化,如果向下轉能成功但是不安全,結果未知;

2 dynamic_cast

用於動態型別轉換,只能用於含虛函式的類,用於類層次間的向上和向下轉化,只能轉指標或引用。向下轉化時,如果是非法的,對於指標返回null,對於引用丟擲異常。通過判斷在執行到該語句的時候變數的執行時型別和要轉換的型別是否相同來判斷是否能夠進行向下轉換。

向上轉換:子類向基類的轉換

向下轉換:基類向子類的轉換

3 const_cast

用於將const變數轉變為非const

4 reinterpret_cast

幾乎什麼都可以轉,比如int轉為指標,可能會出問題,盡量少用。

C 四種cast轉換

c 中四種型別分別為 static cast dynamic cast const cast reinterpret cast 1.const cast 用於將const變數轉換為非const 2.static cast 用於各種隱式轉換,比如非const轉const,void 轉指標等,也可以用於...

C 四種cast常用法

用法 static cast type id expression 1.用於類層次結構中基類和子類之間指標或引用的轉換。進行上行轉換 把子類的指標或引用轉換成基類表示 是安全的 進行下行轉換 把基類指標或引用轉換成子類表示 時,由於沒有動態型別檢查,所以是不安全的。2.用於基本資料型別之間的轉換,如...

C 基礎 10 四種cast轉換的區別

1 c風格的轉換 t expression 2 c 風格的四種轉換 static cast expression dynamic cast expression reinterpret cast expression const cast expression int a 1 double d do...