C 型別轉換函式

2021-10-25 15:16:18 字數 663 閱讀 8475

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