1. 程式人生 > >c++中四種類型轉換的區別

c++中四種類型轉換的區別


1、static_cast,支援子類指標到父類指標的轉換,並根據實際情況調整指標的值,反過來也支援,但會給出編譯警告,它作用最類似C風格的“強制轉換”,一般來說可認為它是安全的;


2、dynamic_cast,支援子類指標到父類指標的轉換,並根據實際情況調整指標的值,和static_cast不同,反過來它就不支援了,會導致編譯錯誤,這種轉換是最安全的轉換;


3、reinterpret_cast,支援任何轉換,但僅僅是如它的名字所描述的那樣“重解釋”而已,不會對指標的值進行任何調整,用它完全可以做到“指鹿為馬”,但很明顯,它是最不安全的轉換,使用它的時候,你得頭腦清醒,知道自己在幹什麼;


4、const_cast,這個轉換能剝離一個物件的const屬性,也就是說允許你對常量進行修改。