C 四種型別轉換方式

2021-08-21 22:29:03 字數 897 閱讀 7904

reinterpert_cast意圖執行低階轉換,實際動作(及結果)可能取決於編譯器,這也就表示它不可移植。例如將乙個 pointer to int 轉型為乙個 int ,這一型別在底層**以外很少見。

示例:

class

a{};

class

b{};

a *a = new a;

b *b = reinterpret(a);

//reinterpret_cast就像傳統的型別轉換一樣對待所有指標的型別轉換

示例:

class base{};

class derived:public base{};

base* a = new base;

derived* b = static_cast

(a);//把父類指標轉換為子類指標

double d = 3.14159265;

int i = static_cast

(d);

示例:

class base

};class derived:public base{};

base* b1 = new derived;

base* b2 = new base;

derived* d1 = dynamic_cast

(b1);//成功

deriver* d2 = dynamic_cast

(b2);//失敗,返回null

示例

class c{};

const c* a = new c;

c* b = const_cast

(a);

C 四種型別轉換方式

c風格的強制型別轉換 type case 很簡單,不管什麼型別的傳統轉換都是 type b type a,但是c風格的型別轉換有不少的缺點,有的時候用c風格的轉換是不合適的,因為它可以在任意型別之間進行轉換,比如你可以把乙個指向const型別的指標轉換成指向非const型別的指標,把乙個指向基類物件...

C 四種型別轉換方式

static cast 靜態型別轉換。reinterpreter cast 重新解釋型別轉換。dynamic cast 子類和父類之間的多型型別轉換。const cast 去掉const屬性轉換 這應該四種中是最常見的。用法為 static cast expression 該運算子把 express...

C 中四種型別轉換方式

型別轉換有c風格的,當然還有c 風格的。c風格的轉換的格式很簡單 type expression,但是c風格的型別轉換有不少的缺點,有的時候用c風格的轉換是不合適的,因為它可以在任意型別之間轉換,比如你可以把乙個指向const物件的指標轉換成指向非const物件的指標,把乙個指向基類物件的指標轉換成...