C 的四種型別轉換

2021-08-22 16:38:28 字數 717 閱讀 4739

c++中,四個與型別轉換相關的關鍵字:static_cast、const_cast、reinterpret_cast、dynamic_cast

特點:靜態轉換,在編譯處理期間。 

應用場合:主要用於c++中內建的基本資料型別之間的轉換,如把int轉換為char,但是沒有執行時型別的檢測來保證轉換的安全性。

上行轉換(派生類---->基類)是安全的;

下行轉換(基類---->派生類)由於沒有動態型別檢查,所以是不安全的。

使用場景:只有在派生類之間轉換時才使用dynamic_cast;不能用於內建的基本資料型別的強制轉換

在類層次間進行上行轉換時,dynamic_cast和static_cast的效果是一樣的;對於下行轉換,dynamic_cast是安全的(當型別不一致時,轉換過來的是空指標),而static_cast是不安全的(當型別不一致時,轉換過來的是錯誤意義的指標,可能造成踩記憶體,非法訪問等各種問題)

使用場景:

a、常量指標轉換為非常量指標,並且仍然指向原來的物件

b、常量引用被轉換為非常量引用,並且仍然指向原來的物件

使用場景:

它可以轉化任何內建的資料型別為其他任何的資料型別,也可以轉化任何指標型別為其他的型別。它甚至可以轉化內建的資料型別為指標,無須考慮型別安全或者常量的情形。不到萬不得已絕對不用。

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