c 四種cast的原理和用途

2021-09-24 20:57:40 字數 500 閱讀 4194

c++ 有四種顯示型別轉換,分別為static_cast, dynamic_cast, const_cast, reinterpret_cast。

static_cast主要用於

1.基本型別的轉換,比如int轉char

2.類的上行轉換,子類的指標或者引用轉換為基類(安全)

3.類的下行轉換,基類的指標或引用轉換為子類(不安全,沒有型別檢查)

dynamic_cast用於類的指標或引用的轉換

1.類的上行轉換,子類的指標或引用轉化為基類(安全)

2.類的下行轉換,基類的指標或引用轉化為子類

(因為有型別檢查所以是安全的,但型別檢查需要執行時型別資訊,這個資訊位於虛函式表中,所以必須要有虛函式)

const_cast 主要是用於改變型別的常量屬性:常量指標轉化為非常量指標;常量引用轉化為非常量引用;常量物件轉化。為非常量物件

reinterpret_cast用於非關聯型別的轉換,操作結果是乙個指標到其他指標的二進位制拷貝,沒有型別檢查。

C 四種cast轉換

c 中四種型別分別為 static cast dynamic cast const cast reinterpret cast 1.const cast 用於將const變數轉換為非const 2.static cast 用於各種隱式轉換,比如非const轉const,void 轉指標等,也可以用於...

C 中四種cast轉換

c 中四種型別轉換是 static cast,dynamic cast,const cast,reinterpret cast 1 static cast 用於各種隱式轉換,例如將非const轉換為const,void 轉指標 將void指標指向任意型別 等,用於多型向上轉化,如果向下轉能成功但是不...

C 四種cast常用法

用法 static cast type id expression 1.用於類層次結構中基類和子類之間指標或引用的轉換。進行上行轉換 把子類的指標或引用轉換成基類表示 是安全的 進行下行轉換 把基類指標或引用轉換成子類表示 時,由於沒有動態型別檢查,所以是不安全的。2.用於基本資料型別之間的轉換,如...