c++中經常會出現資料的型別轉換,例如陣列轉換為指標,int轉換為long,這些都屬於隱式轉換,更重要的是c++提供了四種強制的顯示型別轉換:
static_cast,dynamic_cast,const_cast和reinterpret_cast。
其中dynamic_cast支援執行時型別識別。
任何具有明確定義的轉換,只要不包含底層const都可以使用static_cast進行轉換:
int j =0;
double k =
static_cast
<
double
>
(j);
//將j從int顯示轉換成double
int l =
static_cast
<
int>
(k);
//將double顯示轉換成int,不在乎精度的丟失
見我的部落格dynamic_cast
const_cast只能改變運算物件的底層const,實際並不會改變,只是乙個const away的過程,只是將限定符去掉,但物件仍然不可以改變。見
const_cast詳解
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 強制轉換總結 c語言的強制型別轉換,主要用於基礎資料之間的轉換 語法規則 type id expression 轉換格式1 type id expression 轉換格式2 c 除了c語言的強制型別轉換外,新增了四種強制型別轉換 static cast dynamic cast const ca...