c++是一門強型別語言,一般不支援強制型別轉換,但本語言內部提供了型別轉換符用於不同型別間的轉換
1、const_cast:去掉型別的const或volatile屬性
常用於:
1、常量指標被轉換成非常量指標,仍指向原來的物件
2、常量引用被轉換成非常量引用,仍指向原來的物件
3、常量物件被轉換成非常量物件
int main(void)
2、static_cast:類似域c風格的強制轉換,無條件轉換,靜態型別轉換。
常用於:
1、父類和子類之間的轉換:其中子類指標轉換成父類指標是安全的。但反之不安全
注:父類與子類中之間的動態轉換建議使用dynamic_cast
2、基本型別之間的轉換,如:enum、int、float、int、char等
3、把空指標轉換成目標型別的空指標
4、把任何型別的表示式轉換成void型別
注:static_cast不能進行無關型別指標的轉換(如:沒有關聯的類之間的轉換)
int main(void)
{ int n = 6;
double d = static_cast(n
C 型別轉換符
4個c 型別轉換運算子 使用static cast 用於指標,提供基本的編譯階段檢查,確保指標被轉換為相關型別。c風格型別轉換可將指向乙個物件的指標轉換為完全不相關的型別,而編譯器不會報錯。向上轉換 derived base 無需使用任何顯式型別轉換運算子 向下轉換 base derived 必須使...
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 繼承...