不同数据类型的转换

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值