1. 程式人生 > >C++ 四種類型轉換關鍵字介紹

C++ 四種類型轉換關鍵字介紹

C++有四種類型轉換關鍵字,分別是:

            (1) . static_cast      (2)  const_cast   (3)  reinterpret_cast   (4) dynamic_cast

這四種類型轉換關鍵字分別使用在不同的情況下。下文對這四個關鍵字進行比較分析:

             (1).static_cast   : 可以實現C++中內建基本資料型別之間的轉換,如果涉及到類的話,static_cast只能在相互聯絡的型別中進行相互轉換,不一定包含虛擬函式。

             (2).const_cast : 不能在不同種類間轉換。相反,它僅僅把一個它作用的表示式轉換成常量。它可以使一個本來不是const型別的資料轉換成const型別的,或者把const屬性去掉。

             (3).reinterpret_cast: 有著和c風格的強制轉換同樣的能力。它可以轉化任何內建的資料型別為其他任何的資料型別,也可以轉換任何指標型別為其他的型別。它甚至可以轉化內建的資料型別為指標,無需考慮型別安全或者常量的情形。不到萬不得已,不要輕易使用。

             (4).dynamic_cast : 

                               <1> : 其他三種都是編譯時完成的,dynamic_cast是執行時處理的,執行時要進行型別檢查。

                               <2> :不能用於內建的基本資料型別的強制轉換。

                               <3> : dynamic_cast轉換如果成功的話,返回的是指向類的指標或者引用,轉換失敗的話則返回NULL。

                              <4> : 使用dynamic_cast進行轉換時,基類中一定要有虛擬函式,否則編譯不通過。