型別轉換函式

2022-08-24 16:12:11 字數 1557 閱讀 9024

普通型別到類型別的轉化:轉換建構函式

類型別到普通變數/其他類型別的轉化:型別轉換函式

轉化建構函式:

1.只有乙個引數。

2.引數時基本型別或則其他類型別。

3. 編譯器會隱式的呼叫轉換建構函式。 

#include#include

using

namespace

std;

class

test

test(

int i){} //

轉換建構函式

};int main(void

)

通過關鍵字可以防止編譯器的隱式轉化的嘗試

當轉換建構函式被explicit修飾時,只能進行顯示的轉換。

static_cast(value); //

顯示的轉化

classname t = 5; //

隱式的轉化(不推薦)

classname(vlaue);

(classname)value;

普通型別到類型別的轉化:

#include #include 

using

namespace

std;

class

test

explicit test(int i) //

加explicit的轉換建構函式

test

operator + (const test&p)

intvalue()

};int

main()

型別轉換函式:

1. 類型別到普通變數/其他類型別的轉化。

2. 編譯器會隱式的呼叫型別轉化函式。

語法:

operator type()  //

type 是將要轉換的型別

在型別到型別的轉換中:當乙個類定義型別轉換函式另乙個類定義轉換建構函式時,產生衝突。

解決辦法:定義類的構造轉換函式為 explicit

class test 

int test()

test(value& v){} //

test的轉換建構函式

};class value

int value()

operator test() //

value的型別轉換函式

};int main(void

)

不要實現型別轉換函式,用公有成員函式代替型別轉換函式。

type totype()

呼叫公有成員函式將其他型別轉換為type型別。

class value 

int 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...