C++中类型转换分为:隐式转换和显式转换;
1:隐式转换
条件:
在混合类型表达式中,操作数被转换为相同的类型;
int a;
double b;
a>=b//a->double
用作条件的表达式被转换为bool类型;
int a;
if(a) //a to bool
while(a)
2:强制类型转换;
double dval;
int ival;
ival *=static_cast<int>(dval);//converts dval to int
一般形式:
cast-name<type>(expression);如上所示;
cast-name有:static_cast,dynamic_cast,const_cast和reinterpret_cast;
3:旧式的强制类型转换;
char *pc=(char*)ip;
这种强制转换的可视性比较差,难以跟踪错误的转换,因此建议:只有在C语言或标准C++的编译器上编写代码时,才使用这种语法;;