#include<iostream>
using namespace std;
class T
{
private:
double real,imag;
public:
T(double d1=0,double d2=0):real(d1),imag(d2){
}
operator double() {
return real;} //就是强制转换类型的时候,将T类转为double类,输出为real。
};
int main()
{
T t1(5.20);
cout<<(double)t1<<endl;
double n = 3.0+t1; //隐式调用 t1.operator double()
cout<<n<<endl;
}
operator double()
就是使用强制类型转换函数,return real
就是把T类,变成double real;(double) t1
是显式使用double n =3+ t1
是隐式使用- nuclear :
t1.operator double()