c++依然存在隱式型別轉換
int num = 5;
double b = num;
不安全,無型別檢查
強制型別轉換運算子(不是乙個函式):
static_cast
double b =static_cast(num);、轉換成double型別
char ch = static_cast(num);
void與任意型別指標之間的轉換
int p_num = #
void* ptr = static_cast(p_num);
int* p2 = static_cast>(ptr);
int p3 = (int*)ptr;
父類與子類之間的轉換
const_cast
去除指標和引用的const屬性
const int count = 5;
const int* p count = &count;
int* p_count2 = const_cast(p_count);
cout << count << endl;
去除引用
const int& r_count = count;
int& r_count2 = const_cast(r_count);
reinterpret_cast
任意指標型別轉換
p_num = reinterpret_cast(p_ch);
強制型別轉換:不安全
dynamic_cast
rtti執行時型別資訊
c 四種型別轉換
c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a。c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...
C 四種型別轉換
include include includeusing namespace std static cast 用法 static cast type id expression 該運算子把expression轉換為type id型別,但沒有執行時型別檢查來保證轉換的安全性。它主要有如下幾種用法 用於...
C 四種型別轉換
1 static cast 1.上行轉換,把派生類的指標或引用轉換成基類,此時是安全的 2.下行轉換,把基類的指標或者引用轉換成派生類,因為沒有動態監測,所以是不安全的 3.顯示型別轉換,如int轉float等 4.任意型別空指標轉任意型別空指標 5.任意型別表示式轉為void型別 如下 int a...