42 型別轉換函式(下)

2021-08-19 19:26:46 字數 958 閱讀 3813

類型別是否能轉換為普通型別?

c++類中可以定義型別轉換函式,型別轉換函式用於將類物件轉換為其它型別。

語法規則:

operator type()                //返回type型別

type ret;

return ret;

#include

#include

using namespace std;

class test

int value()

operator int ()                 //型別轉換函式  將類型別轉換為 int

};int main()

explicit value(test& t)       //轉換建構函式

};class test

int value()

operator value()

};int main()

{   

test t(100);

value v = t;           // value v = t.operatpr value();    

//沒有explicit的話,value(t); v的轉換建構函式

return 0;

無法抑制隱式的型別轉換函式呼叫,型別轉換函式可能與轉換建構函式衝突,工程中以type totype()的公有成員代替型別轉換函式,將

operator value()

{value ret;

cout << "operator value()" << endl;

return ret;

改為:value tovalue()

{value ret;

cout << "operator value()" << endl;

return ret;

當前物件轉換為value物件,value v=t.tovalue();

42 型別轉換函式(下)

1 問題 我們上一課的內容是將普通型別轉換成類型別,那麼問題來了,我們能否將類型別轉換到普通型別?單純這樣肯定是不行的,我們必須引入新的規則 2 型別轉換函式 operator type include using namespace std class test int geti operator...

42 型別轉換函式(下)

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 9.2.0 一 問題 類型別是否能夠型別轉換到普通型別?二 型別轉換函式 1 c 類中可以定義型別轉換函式 2 型別轉換函式用於將類物件轉換為其它型別 3 語法規則 operator ty...

C 42 型別轉換函式 (下)

問題 類型別是否能夠型別轉換到普通型別呢?include using namespace std class test int main 輸出 test.cpp in function int main test.cpp 14 error cannot convert test to int in ...