前面介绍的转换构造函数是将一个指定数据类型转换为类的对象,但是不能反过来将一个类的对象转换为一个数据,比如你想把一个Complex类对象c1转换为double型数据。
而类型转换函数正是解决了这个问题,它将一个类的对象转换为另一个类型的数据。
定义的方法:
operator 类型名(){
实现转换的语句
}
注意: 类型转换函数只能作为成员函数,因为转换的主体是本类的对象,不能作为友元函数或者普通函数。
#include <iostream>
using namespace std;
class Complex {
public:
Complex() {
real = 0;
imag = 0;
}
Complex(double r, double i) {
real = r;
imag = i;
}
operator double() {
return real;
}
private:
double real;
double imag;
};
int main(int argc, char **argv) {
Complex c1(3, 4), c2(5, -10), c3;
double d;
d = 2.5 + c1;
cout << d << endl;
getchar();
return 0;
}
程序输出5.5