static_cast, dynamic_cast, const_cast, reinterpret_cast的简单介绍
2015-03-24 22:06
302 查看
在C++中, 我们有新的强制转换机制, 为什么要这么搞呢? 因为这些关键字非常显眼, 而且一旦出了问题, 可以方便查阅code. 我们今天暂时不说dynamic_cast, 仅仅感知一下其余的三个:
int main() { // 普通转换, 只能用static_cast int i = 0; double d = static_cast<int>(i); // 转换回来, 其实此处也可以用 reinterpret_cast void *p1 = &i; int *p2 = static_cast<int *>(&i); // 去常转换, 只能用const_cast const char *q = "abc"; char *p3 = const_cast<char *>(q); // 重解释, 只能用reinterpret_cast int n = 0; double *pd = reinterpret_cast<double *>(&n); return 0; }一定要慎用, 这些转换很容易产生非程序猿预期的结果, 尤其是reinterpret_cast.
相关文章推荐
- 标准c++中四种强制转换类型运算符介绍 const_cast,reinterpret_cast,static_cast,dynamic_cast
- 简单理解static_cast, dynamic_cast, reinterpret_cast和const_cast的区别和应用
- static_cast、dynamic_cast、reinterpret_cast、和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- 总结C++中的所有强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- 使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。(转)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 【转】使用标准C++的类型转换符:static_cast、dynamic_cast、const_cast和reinterpret_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。
- static_cast、dynamic_cast、reinterpret_cast、和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast (1)
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast