#include using namespace std;
class fraction
fraction():num(0),den(1){}
fraction(int n, int d):num(n),den(d){}
//#if 1
operator double()
catch(const char* msg)
}//#else
double operator+(int d)
//#endif
private:
int num;
int den;
};int main(int argc, char* ar**)
當只有型別轉換函式時,即上面只有operator double()函式,在計算t1和t2時,編譯器會將fraction先轉換成double,再進行計算。當然,對於t3,自然會選擇型別轉換函式。
當型別轉換函式和過載的+操作符函式同時存在時,在計算t1和t2時,編譯器會優先選用過載的+操作符函式,對於t3,則仍舊還是選擇型別轉換函式。
關於型別轉換操作符函式,其特點如下:
必須是成員函式,不能是友元函式
沒有引數
不能指定返回型別
函式原型:operator 型別名();
C 型別轉換函式
2202.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std class test 在函式名前面不能指定函式型別,函式沒有引數 下面的例子函式名是 operator int operator int private int m...
c 型別轉換函式
一.opertor 本類型別 其他型別 內建型別或其他類型別 c 中opertor可以將類型別轉換為內建型別或其他型別,但反之不行 operator 型別名 1 classa2 7operator int 無返回值型別,無引數,返回目標型別的物件8 9void main 10二.轉換建構函式 其他型...
C 的型別轉換函式
c 的型別轉換函式 reinterpret cast const cast static cast 和dynamic cast 前三個型別轉換是在 編譯時實現轉換 dynamic cast 是在執行時進行型別轉換的。reinterpret cast expression const cast new...