c 中的static cast的用法

2021-06-21 10:42:13 字數 367 閱讀 3189

用法:static_cast < type-id > ( expression )

該運算子把expression轉換為type-id型別,但沒有執行時型別檢查來保證轉換的安全性。它主要有如下幾種用法:

①用於類層次結構中基類(父類)和派生類(子類)之間指標或引用的轉換。

進行上行轉換(把派生類的指標或引用轉換成基類表示)是安全的;

進行下行轉換(把基類指標或引用轉換成派生類表示)時,由於沒有動態型別檢查,所以是不安全的。

②用於基本資料型別之間的轉換,如把int轉換成char,把int轉換成enum。這種轉換的安全性也要開發人員來保證。

③把空指標轉換成目標型別的空指標。

④把任何型別的表示式轉換成void型別。

static cast的詳細介紹

static cast一般用來將列舉型別轉換成整型,或者整型轉換成浮點型。也可以用來將指向父類的指標轉換成指向子類的指標。做這些轉換前,你必須確定要轉換的資料確實是目標型別的資料,因為static cast不做執行時的型別檢查以保證轉換的安全性。也因此,static cast不如dynamic ca...

static cast與c風格的強制型別轉換比較

class a class b class c public a int main 編譯直接報錯 cast.cpp in function int main cast.cpp 22 31 error invalid static cast from type b to type a cast.cpp...

static cast與c風格的強制型別轉換比較

classa classb class c publica intmain 編譯直接報錯 cast.cpp in function int main cast.cpp 22 31 error invalid static cast from type b to type a cast.cpp 23 ...