C 型別轉換運算子的使用

2021-04-13 07:11:50 字數 1060 閱讀 6095

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...