天天看點

C++中的四種運算符轉化及不同點:

C++中的四種運算符轉化及不同點:

(1)const_cast操作符:即工程設計師在特殊情況下将限制為const成員函數的const定義解除

,使其可以更改特定屬性。

(2)dynamic_cast操作符:如果啟動了支援運作時間類型資訊(RTTI),

dynamic_cast有助于判斷在運作時所指向對象的确定類型。它與typeid運算符有關,可以将一個基類

的指針指向不同的子類型(派生類),然後将被轉型作為基礎類的對象還原成原來的類。

(3)reinterpret_cast操作符:将一個指針轉換成其他類型的指針,新類型的指針與舊

指針可以毫不相幹。通常用于非标準的指針資料類型轉換,例如将void*轉換為char*。

它也可以用于指針與整形數之間的類型轉換。但需要注意的是:它存在潛在的危險,除非有使用它的充分必要

,否則不要輕易使用它。例如:将一個int*類型的指針轉換為float*類型的指針,

會很容易造成整數資料不能被正确的讀取。

(4)static_cast操作符:在相關的對象和指針類型之間進行類型轉換。有關的類之間必須

通過繼承構造函數或者轉換函數進行聯系。static_cast操作符還能在數字(原始的)

類型之間進行類型轉換。通常情況下,static_cast操作符用在數域較大的類型轉換為較小的類型。當

轉換的類型是原始資料類型時,這種操作可以有效地禁止編譯器發出警告。