一、标准类型数据间的转换
类型名(数据)或 (类型名)数据
例:
int a;
double b;
a=int (b); // 或者 a=(int) b; 将b的double型转换成int型赋给a
二:使用转换构造函数将一个其他类型的数据转换为一个类的对象
例:将double类型的c转换为Complex的一个对象
Complex(double c){real=c;imag=0;}
//使用
Complex(c); //将c转换成了一个无名的对象,无法使用
Complex a1;
a1=Complex(c);
//或者
Complex(2.5); //也可以将数据直接转换
//若已经将+重载为两个类的对象的相加,则可以
Complex a2;
a2=a1+Complex(2.5); //将2.5转换为对象相加
注意:
1、无论类中有多少数据,转换构造函数都只能有一个参数。
2、如果已经定义相应的转换构造函数,将运算符‘+’重载,可以满足交换律。
三:将一个类的对象转化为另一个类的对象
Time(Complex&c) { hour=c.real;second=c.imag;}
四:类型转换函数(别名:类型转换运算符函数 或者 类型转换运算符重载函数)
作用:将类的对象转换为其他类型的数据
格式:
operator 类型名()
{实现转换的语句}
例:
operator double()
{
return real;
}
///
Complex c1;
double d1,d2;
d1=d2+c1; //如果未对+重载,系统会自动检测是否有类型转换函数,如果有则能够自动执行
注意:
1、类型转换函数只能做类的成员函数。
2、可以自动执行
3、类型转换函数无类型,无参数。