關於C 的型別轉換失敗

2022-06-23 16:33:09 字數 460 閱讀 1753

c++中的基礎(內建)資料型別的轉型沒有失敗的,頂多就是精度損失;至於自定義型別的轉型,最好使用新式的轉型風格,即

const_cast>(expression)               //const與非const之間的轉型

dynamic_cast>(expression)          //多型轉換

reinterpret_cast>(expression)       //強制轉換

static_cast>(expression)               //隱式轉換

最好不要用舊風格的(t)(expression)

要說明的是:

一、之所以新風格寫的轉型如此麻煩,就是讓人儘量少做轉型操作;

二、多型轉型的時候,有時提示失敗,比如一個子類物件指標轉換為父類物件指標(這個是多型的基礎,肯定是可以的)提示失敗,其實有可能是子物件的定義缺失,注意此時報錯報的是轉型失敗;