目录
不同类型数据间的转换
1、标准类型数据间的转换
在以前我们对一个变量初始化或者不同数据间进行运算时,都会涉及到数据类型的转换,只是有显式和隐式的区别。隐式类型转换是编译系统自动完成的,不需要用户干预,例:
int i=6;
i=7.5+i;
编译系统对 7.5 是作为 double 型数处理的,在求解表达式时,先将 i 的值 6 转换成 double 型,然后与 7.5 相加,得到和为 13.5 ,在向整型变量 i 赋值时,将 13.5 转换成整数 13 ,然后赋给 i 。
显式类型转换是人为地指定将一种指定的数据转换成另一指定的类型,其形式为: 类型名(数据),或者 (类型名)数据,但提倡用后边那种形式,看着比较清晰。
2、转换构造函数
转换构造函数的作用是将一个其类型的数据转换成一个类的对象。在此之前回顾一下之前学的构造函数,以现有一个复数类为例,默认构造函数(Complex(),无形参)、用于初始化的构造函数(Complex(double r,double i),为类对象进行初始化)、复制构造函数(Complex(Complex c),形参是本类对象)。
转换构造函数只有一个形参,如
Complex (double r){
real=r;
imag=0;
}
作用就是将 double 型参数 r 转换成 Complex 类的对象,将 r 作为复数的实部,虚部为0(这部分可以根据需要定义转换构造函数)。在一般的类体中,可以有转换构造函数,也可以没有转换构造函数,视需要而定。
举一些例子来说:如果在Complex 类中定义了上面的转换构造函数,那么在 Complex 类的作用域内可定义 Complex c1(3) ,由于其只有一个参数,故会调用上面的转换构造函数,将 int 型常数转换成一个