c++裡的類型轉換種類
在c++裡包含4種,static_cast,dynamic_cast,const_cast,reinterpret_cast。
4種類型
reinterpret_cast: 強制類型轉換符,修改操作數類型,給出了對象的Bit模型,而沒有進行二進制轉化;慎用;
static_const: 類層次之間父類和子類的轉換。父類的指針或是引用轉換到基類是安全的;反過來就不安全了。
基本數據之間的轉換。與reinterpret_const相比,static_const可以進行二進制的轉化;基本上與c風格的()轉換功能一樣;
const_cast: const轉換為非const;
dynamic_const: 類層次之間父類和子類的轉換,類層次進行上行轉換時,和static_const效果一樣。
dynamic_const會進行動態時檢查。基類必須含有虛函數,而static_const沒這個要求。在進行下行轉換時,dynamic_const和static_const都通不過,但是 dynamic返回null,而static_const編譯時刻錯誤,充分說明了一個是動態時刻檢查,一個是編譯時刻錯誤。