类型转换函数的作用是将一个类的对象转换成另一类型的数据,所以只能定义为类成员函数。
类型转换函数的一般形式为:
operator 类型名( )
{
实现转换的语句
}
如:operator double( )
{
return real;
}
类对象只有在需要时才进行转换,要根据表达式的上下文来决定。
#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( )
{
Complex c1(3,4),c2(5,-10),c3;
double d;
d=2.5+c1;//要求将一个double数据与Complex类数据相加
cout<<d<<endl;
return 0;
}