C 四種型別轉換

2021-10-18 15:43:40 字數 778 閱讀 2755

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...