C 中的四種型別轉換解析

2021-10-04 23:51:46 字數 1090 閱讀 7300

c++中按照不同作用的轉換型別將其細分為四個顯示型別轉換符號static_cast,const_cast,reinterpret_castdynamic_cast

這種新型別的強制轉換可以提供更好的控制強制轉換過程允許控制各種不同種類的強制轉換。能更清晰的表明它們要幹什麼。

double i=

12.342

;int j=

static_cast

<

int>

(i);

class

base

;class

derived

:public base

;base *a =

new base;

derived *b =

static_cast

>

(a);

classa;

classb;

a * a =

new a;

b * b =

reinterpret_cast

>

(a);

void test (

)

class

base};

class

derived

:public base

;base* b1 =

new derived;

base* b2 =

new base;

derived* d1 =

dynamic_cast

>

(b1)

;// succeeds

derived* d2 =

dynamic_cast

>

(b2)

;// fails: returns 'null'

注意:

c 中四種型別轉換

2.型別轉換 c 中的型別轉換 四種型別裝換符 static cast 基礎資料型別的轉換和繼承中父類與子類,指標與引用裝換 dynamic cast 通常在基類和派生類之間轉換時使用 const cast 主要針對const的轉換 reinterpret cast 用於進行沒有任何關聯之間的轉換,...

C 中的四種型別轉換

static cast type id expression 1 基本型別之間的轉換 如把int轉換成char,這種轉換的安全性也要開發人員來保證。但不能用於不同指標型別之間的型別轉換。static cast更有利於檢查出危險的型別轉換。float af 3.0f double pdouble st...

C 中的四種型別轉換

static cast,dynamic cast,const cast,reinterpret cast是c 中的四種型別轉換 用於將const變數轉為非const 用於各種隱式轉換,比如非const轉const,void 轉指標等 static cast能用於多型向上轉化,如果向下轉能成功但是不安...