类型转换(隐式 -- 显示)
显示转换
1.static_cast//编译器隐式执行的任何类型转换都可以由 static_cast 显式完成:
double dval;
int ival = static_cast<int>(dval);
2.const_cast
//只有使用 const_cast 才能将 const 性质转换掉。在这种情况下,试图使 用其他三种形式的强制转换都会导致编译时的错误。
类似地,除了添加或删除 const 特性,用 const_cast 符来执行其他任何类型转换,都会引起编译错误。
const char *pc_str;
char *pc = string_copy(const_cast<char*>(pc_str));
3. dynamic_cast
4.reinterpret_cast 通常为操作数的位模式提供较低层次的重新解释。要求程序员完全理解所涉及的数据类型, 以及编译器实现强制类型转换的细节。
旧式强制类型转换 在引入命名的强制类型转换操作符之前,显式强制转换用圆括号将类型括起
来实现:效果与使用 符号相同
char *pc = (char*) ip;