我們知道c語言中的類型轉換只有一種,
TYPE b = (TYPE)a;
而在c++中按照不同作用的轉換類型將其細分為三個顯示類型轉換符號static_cast, const_cast, reinterpret_cast,這種顯示轉換可以提供更豐富的含義和功能,更好的類型檢查機制,方便代碼的維護。
bv = i = ()bv; iv2 = static_cast<>(bv); iv2 = reinterpret_cast<>(bv); bv = *pbv = & *iv1 = (*)pbv; *iv2 = static_cast<*>(pbv); *iv2 = reinterpret_cast<*>(pbv); *piv1 = (* *piv2 = static_cast<*> *piv3 = static_cast<*>(piv2);
lv = llv = *piv1 = (*)lv; *piv2 = reinterpret_cast<*>= reinterpret_cast<*>(llv);
去除指針或者引用的const或volatile屬性
const_char = *pch = &const_char; *pch = (*)&const_char; *pch = const_char = chv = const_cast<> *pch = & *chv = const_cast<*>(&const_char); *chv=’c’;
總結:這三種與c對應的強制類型轉換符號都是編譯時確定的,RTTI的dynamic_cast和c沒有關系,以後再專門介紹。