標準資料型別之間會進行隱式的型別安全轉換
轉換規則如下
char ->short
char/short ->int ->unsigned int -> long ->unsigned long ->float ->double
char+short -> int
再論建構函式
建構函式可以定義不同型別的引數
引數滿足下列條件時稱為轉換建構函式
有且僅有乙個引數
引數是基本型別
引數是其它類型別
編譯器的行為
工程中通過explicit關鍵字杜絕編譯器的轉換嘗試
轉換建構函式被explicit修飾時只能進行顯示轉換
轉換方式
static_cast(value);
classname(value);
(classname)value;//不推薦
型別轉換函式
c++類中可以定義型別轉換函式
型別轉換函式用於將類物件轉換為其它型別
語法規則:
operator type ()
type ret;
return ret;
與轉換建構函式具有同等的地位
使得編譯器有能力將物件轉換為其它型別
編譯器能夠隱式的使用型別轉換函式
無法抑制隱式的型別轉換函式呼叫
型別轉換函式可能與轉換建構函式衝突
工程中以type totype()的公有成員代替型別轉換函式
型別轉換函式 轉換建構函式
用途 將乙個其它型別的資料轉換成自定義的類型別。注意 這種建構函式只有乙個引數,但要區別於拷貝建構函式 形參是乙個自定義型別的引用 例子 include using namespace std class complex 這個預設的建構函式便可以充當 轉換建構函式 complex double r ...
型別轉換函式 轉換建構函式
用途 將乙個其它型別的資料轉換成自定義的類型別。注意 這種建構函式只有乙個引數,但要區別於拷貝建構函式 形參是乙個自定義型別的引用 例子 include using namespace std class complex 這個預設的建構函式便可以充當 轉換建構函式 complex double r ...
型別轉換函式
型別轉換函式的作用是將乙個類的物件轉換成另一型別的資料.例如,如果已宣告了乙個complex類,可以在complex類中這樣定義型別轉換函式 operator double 函式返回double型變數m dreal的值.它的作用是將乙個complex類物件轉換為乙個double型資料,其值是comp...