普通型別到類型別的轉化:轉換建構函式
類型別到普通變數/其他類型別的轉化:型別轉換函式
轉化建構函式:
1.只有乙個引數。
2.引數時基本型別或則其他類型別。
3. 編譯器會隱式的呼叫轉換建構函式。
#include#includeusing
namespace
std;
class
test
test(
int i){} //
轉換建構函式
};int main(void
)
通過關鍵字可以防止編譯器的隱式轉化的嘗試
當轉換建構函式被explicit修飾時,只能進行顯示的轉換。
static_cast(value); //顯示的轉化
classname t = 5; //
隱式的轉化(不推薦)
classname(vlaue);
(classname)value;
普通型別到類型別的轉化:
#include #includeusing
namespace
std;
class
test
explicit test(int i) //
加explicit的轉換建構函式
test
operator + (const test&p)
intvalue()
};int
main()
型別轉換函式:
1. 類型別到普通變數/其他類型別的轉化。
2. 編譯器會隱式的呼叫型別轉化函式。
語法:
operator type() //type 是將要轉換的型別
在型別到型別的轉換中:當乙個類定義型別轉換函式另乙個類定義轉換建構函式時,產生衝突。
解決辦法:定義類的構造轉換函式為 explicit
class testint test()
test(value& v){} //
test的轉換建構函式
};class value
int value()
operator test() //
value的型別轉換函式
};int main(void
)
不要實現型別轉換函式,用公有成員函式代替型別轉換函式。
type totype()
呼叫公有成員函式將其他型別轉換為type型別。
class valueint value()
int toint() //
公有成員轉換函式
long tolong() //
公有成員轉換函式
float tofloat() //
公有成員轉換函式
};int main(void
)
型別轉換函式 轉換建構函式
用途 將乙個其它型別的資料轉換成自定義的類型別。注意 這種建構函式只有乙個引數,但要區別於拷貝建構函式 形參是乙個自定義型別的引用 例子 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...