1. 程式人生 > >c++面試經典問題-四種強制型別轉換

c++面試經典問題-四種強制型別轉換

Static_cast和Dynamic_cast放在一起比較容易記,一動一靜

Static_cast是靜態轉換,也就是編譯時轉換,可以完成基礎型別的轉換,然後任意型別指標與void指標的轉換,還可以完成同一個繼承體系中型別的轉換。

Dynamic_cast是執行時轉換,用於將基類的指標或引用安全的轉換成派生類的指標或引用。也就是所謂的downcast,向下轉換,因為向上轉換upcast是沒有問題的(子類轉換為父類),因為父類的行為(函式)都包含在子類中。

同時,要保證基類中存在虛擬函式,保證多型。

Const_cast 去除掉常量屬性

Reinterpret_cast 對二進位制形式重新解釋,但不改變其值。