C 四種cast轉換

2021-09-29 18:49:04 字數 676 閱讀 3923

c++中四種型別分別為:static_cast , dynamic_cast , const_cast , reinterpret_cast

1.const_cast

用於將const變數轉換為非const

2.static_cast

用於各種隱式轉換,比如非const轉const,void*轉指標等,也可以用於多型向上轉換,如果向下轉能成功但是不安全,結果未知

3.dynamic_cast

用於動態型別轉換。只能用於含有需函式的類,用於類層次間的向上和向下轉換。只能轉指標或引用。向下轉換時,如果是非法的對於指標返回null,對於引用拋異常。要深入了解內部轉換原理。

· 向上轉換:指的是子類向基類轉換

· 向下轉換:指的是基類向子類轉換

它通過判斷在執行到該語句的時候變數的執行時型別和要轉換的型別是否相同來判斷是否能夠進行向下轉換

4.reinterpret_cast

幾乎什麼都可以轉,比如int轉指標,但是可能會出現問題,所以盡量少用

為什麼不用c的強制轉換?

c的強制轉換看起來功能強大,什麼都可以轉,但是轉化不夠明確,不能進行錯誤檢查

C 中四種cast轉換

c 中四種型別轉換是 static cast,dynamic cast,const cast,reinterpret cast 1 static cast 用於各種隱式轉換,例如將非const轉換為const,void 轉指標 將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...