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