資料型別轉換在程式編譯時或在程式執行實現
基本型別 ←→ 基本型別
基本型別 ←→ 類型別
類型別 ←→ 類型別
類物件的型別轉換可由兩種方式說明:
建構函式 轉換函式
稱為使用者定義的型別轉換或類型別轉換,有隱式呼叫和顯式呼叫方式
1class
x
2 ;7
void
f ( x arg ) ;8:
9 x a = x( 1 ) ; //
a = 1,呼叫建構函式x(int),把1轉換成x類型別後賦給物件a,也稱x(1)為類x的型別常量
10 x b = "
jessie
" ; //
b = x ( "jessie" , 0 ),呼叫建構函式x(const char*,int =0),把字串轉換成x類型別後,賦給b;
11 a = 2 ; //
a = x ( 2 ),隱式呼叫建構函式x(int),把2轉換成x類型別之後賦給物件a,
12 f ( 3 ) ; //
f ( x ( 3 ) ),隱式呼叫建構函式x(int),對實參做類型別轉換,然後進行引數結合
13 f ( 10 , 20 ) ; //
error ,找不到匹配的建構函式,轉換失敗
//注:這樣的轉換都是由系統自動完成的
2.類型別轉換函式:
帶引數的建構函式不能把乙個類型別轉換成基本型別
類型別轉換函式是一種特殊的成員函式,提供類物件之間
顯式型別轉換的機制
語法形式:
x :: operator t ( )
return t 型別的物件
功能:將型別 x 的物件轉換為型別 t 的物件
· 函式沒有引數,沒有返回型別,但必須有一條 return 語句,返回
t 型別的物件
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.發生型別轉換的時機 賦值運算,方法傳參。2.分類 1 根據轉換方法的不同 顯示轉換 explicit 隱式轉換 implicit 如果在 中明確指明了目標型別例稱之為顯示型別轉換如 int x int y,否則稱之為隱式型別轉換如 long y x。顯示和隱式轉換都可能失敗 顯示失敗,則丟擲執行...