1.發生型別轉換的時機:賦值運算,方法傳參。
2.分類:
(1)根據轉換方法的不同:顯示轉換(explicit),隱式轉換(implicit)。
如果在**中明確指明了目標型別例稱之為顯示型別轉換如:int x = (int) y,否則稱之為隱式型別轉換如:long y = x。
顯示和隱式轉換都可能失敗:顯示失敗,則丟擲執行時異常。隱式失敗,則丟擲編譯異常。
最後,隱式轉換也可以用顯式轉換替代,但顯式轉換不能用隱式轉換替代。
(2)根據源型別和目標型別的不同:變換(conversion),投射(cast),裝箱(boxing)/拆箱(unboxing)。
裝箱/拆箱:如果轉換的型別乙個為引用型別,乙個為值型別,則稱之為裝箱/拆箱。從值型別向引用型別的轉換稱為裝箱,而從引用型別向值型別轉換稱為拆箱。
投射:如果源型別和目標型別是直接或間接的繼承關係,則稱之為投射。
變換:如果源型別和目標型別不具備上述兩種關係,如兩種簡單值型別或兄弟/鄰居型別(有著共同的祖先類)之間,則稱為普通型別轉換(或稱「變換」)。
C 之型別轉換
一 static cast型別轉換 static cast 應用於c 可以隱式轉換的型別之間,包括雙向隱式轉換和單向隱式轉換。例如 雙向隱式轉換 int a char b a static cast b 可以直接通過隱式轉換,轉換型別 a b b static cast a 可以直接通過隱式轉換,轉...
C 之型別轉換
實現將a類的物件轉換為b類物件的方法有3種 a類物件 方法一 如果a為基類,b為派生類,能夠將派生類的物件轉換基類的物件,如b b a a b 方法二 在a類物件中定義轉換建構函式 單形參建構函式 除掉預設形參 並將b類物件作為形參,同一時候禁止使用explicit關鍵子,形如 a b b,int ...
c 之類型別轉換
資料型別轉換在程式編譯時或在程式執行實現 基本型別 基本型別 基本型別 類型別 類型別 類型別 類物件的型別轉換可由兩種方式說明 建構函式 轉換函式 稱為使用者定義的型別轉換或類型別轉換,有隱式呼叫和顯式呼叫方式 1 class x 2 7 void f x arg 8 9 x a x 1 a 1,...