不同数据类型的转换

橙三吉。 提交于 2020-01-02 17:58:41

一、标准类型数据间的转换

 类型名(数据)或 (类型名)数据
  例:
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、类型转换函数无类型,无参数。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!