c++提供了四個新的型別轉換運算子:
const_cast dynamic_cast
reinterpret_cast static_cast
使用方法:
cast_operator (object)
型別轉換操作符
要轉換的型別
要進行轉換的物件
①dynamic_cast 將乙個基類引用或指標轉換位乙個派生類應用或指標,或者將乙個派生類引用或指標轉換為乙個基類引用或指標。
例:class shape ;
class circle : public shape ;
shape *sp;
circle *cp = dynamic_cast (sp);
class control ;
class textbox : public control ;
control &cr;
textbox &ctl = dynamic_cast (cr);
②static_cast 不侷限於同一多型類層次中的基類和派生類,可使用static_cast呼叫處於不同層次的型別之間的隱式轉換。
例:class b ;
class d : public b ;
void f(b* pb, d* pd)
③reinterpret_cast 將指標型別轉換為其他指標型別,將數字轉換為指標或將指標轉換為數字。
例: void * getmen()
… char *cp = reinterpret_cast(getmen);
④const_cast 移去物件的const,volatile, 和__unaligned屬性。
例:class cctest ;
c 型別轉換運算子
c 中有4個型別轉換運算子,使裝換過程更規範 dynamic cast type name expression 如果轉型失敗則返回0,即空指標。該運算子的用途是,使得能夠在類層次結構中進行向上轉換 由於 is a關係,這樣的型別轉換時安全的 而不允許其他轉換。二 const cast const ...
C 型別轉換運算子
隱式轉換,是針對不同型別之間的賦值和運算,函式呼叫傳遞引數 這些的轉換都是由編譯器自動完成 char ch int i ch 顯式轉換 由程式設計師在變數前面新增型轉換 char pc char pb void ps void pa 通過上述的兩種方式,c語言大部分的型別轉換都可以順利進行,c 繼承...
C 型別轉換運算子
用於 指向派生類物件的 基類指標轉換成派生類指標。如果轉換失敗,則返回0,即空指標。通過判斷轉換是否成功,來決定是否用派生類裡的函式 基類中可能沒有那個函式 class a class b public a class c public b a a new a a b new b a c new c...