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操作符用在數域較大的類型轉換為較小的類型。當
轉換的類型是原始資料類型時,這種操作可以有效地禁止編譯器發出警告。