C 四種型別轉換

2021-07-29 02:07:30 字數 814 閱讀 1777

1、static_cast

1.上行轉換,把派生類的指標或引用轉換成基類,此時是安全的

2.下行轉換,把基類的指標或者引用轉換成派生類,因為沒有動態監測,所以是不安全的

3.顯示型別轉換,如int轉float等 

4.任意型別空指標轉任意型別空指標

5.任意型別表示式轉為void型別

**如下:

int a = 4;

float f = static_cast (a);

void *pa = &a;

int *pb = static_cast (pa);

class base

};class b :public base

};base *base = new base;

b *b = static_cast(base);

2、const_cast

1.常量指標被轉成非常量指標並指向原物件。

2.常量引用被轉成非常量引用並指向原物件。

const b *b1;

b* b2 = const_cast(b1);

3、dynamic_cast

下行轉下行的時候會檢測,比static_cast安全。不成功返回null。

4、reinterpret_cast

它可以把乙個指標轉換成乙個整數,也可以把乙個整數轉換成乙個指標(先把乙個指標轉換成乙個整數,

在把該整數轉換成原型別的指標,還可以得到原先的指標值)。

該運算子的用法比較多。

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 四種型別轉換

首先是static cast static cast 只允許三種轉換 基本資料型別之間轉換,如static cast int 還有就是void 指標向其他指標型別的轉換,如static cast malloc sizeof int 最後就是同乙個繼承體系下的downcasting和upcasting...