類型轉換函數能夠實現把一個類 類型 轉換成 基本數據類型(int、float、double、char等) 或者 另一個類 類型。
其定義形式如下,注意不能有返回值,不能有參數,只能返回要轉換的數據類型。
class X { public: operator TYPE() { //..... return TYPE對象; } };
例子:將一個類轉換成基本數據類型和 類類型
#include <iostream> using namespace std; class Base { public: Base(int d):data(d){} void display(void){cout<<data<<endl;} private: int data; }; class DataCollection { public: DataCollection(char c, int in, float f, double d, Base s):ch(c),i(in),ft(f),db(d),bs(s){} //Data Cast operator char(){return ch;} operator int(){return i;} operator float(){return ft;} operator double(){return db;} operator Base(){return bs;} private: char ch; int i; float ft; double db; Base bs; }; int main(void) { Base bs1(5),bs2(100);bs2.display(); DataCollection dc('A',1,2.1f,3.1,bs1); char ch = dc; cout << ch << endl; int i = dc; cout << i << endl; float ft = dc; cout << ft << endl; double db = dc; cout << db << endl; bs2 = dc; bs2.display(); return 0; }