c++強制轉換總結
c語言的強制型別轉換,主要用於基礎資料之間的轉換
語法規則:
(type-id)expression //轉換格式1
type-id(expression) //轉換格式2
c++除了c語言的強制型別轉換外,新增了四種強制型別轉換:
static_cast 、dynamic_cast、const_cast、reinterpret_cast
語法為:
static_cast(expression)
dynamic_cast (expression)
const_cast (expression)
reinterpret_cast (expression)
備註:new_type為目標資料型別,expression為原始資料型別變數或表示式
2.1 static_cast 主要有如下幾種用法
a. 用於類層次結構中基類和派生類之間指標和引用的轉換。
進行上行轉換(把派生類的指標或引用轉換成基類表示)是安全的
進行下行轉換(把基類的指標或引用轉換成派生類表示)
b. 用於基本資料型別之間的轉換,如把int轉換成char,把int轉換成enum。這種轉換的安全性也要開發人員來驗證。
c. 把空指標轉換成目標型別的空指標
d. 把任何型別的表示式轉換成void型別
注意:static_cast不能轉換掉expression的const、volatile、或者_unaligned屬性
C 強制轉換
c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...
c 強制轉換
隱式轉換 char int 顯示轉換 c風格轉換 base b new test test t test b c 風格 static cast 編譯時檢查,如果不是派生關係,則編譯錯誤 dynamic cast 執行時檢查,如果不是派生關係,則返回null rtti reinterpret cast...
C 強制轉換
c 中經常會出現資料的型別轉換,例如陣列轉換為指標,int轉換為long,這些都屬於隱式轉換,更重要的是c 提供了四種強制的顯示型別轉換 static cast,dynamic cast,const cast和reinterpret cast。其中dynamic cast支援執行時型別識別。任何具有...