1、隐式类型转换
c++定义了一组内置类型对象之间的标准转换,由编译器隐式的应用到对象上。
(1)在混合类型的算术表达式中,最宽的数据类型成为目标转换类型。
顺序如下: double——float——int。
(2)用一种类型的表达式赋值给另一种类型对象,目标转换类型是赋值对象的类型。
例如:int *pi=0;
文字常量0的类型是int,被转换成int*型的指针,表示空地址。
(3)把一个表达式传递给一个函数调用,表达式的类型与形式参数的类型不相同,目标转换类型是形式参数的类型。
(4)从一个函数返回一个表达式,表达式的类型与返回类型不相同,目标转换类型是函数的返回类型。
2、显示转换
也被称为强制类型转换:static_cast,dynamic_cast,const_cast,reinterpret-cast。
3、旧式强制类型转换:
type (expr); //C++
(type)expr; //C