C++中的四种强制类型转换
来源:互联网 发布:大数据徐子沛百度云 编辑:程序博客网 时间:2024/06/05 17:04
C++的四种强制类型转换分别为:static_const,dynamic_cast,const_cast,reinterpret_cast
为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换?
新类型的强制类型转换可以提供更好的控制强制转换过程,允许控制各种不同类的转换。C++中风格是static_cast<type>(content).C++风格的强制转换其他的好处是,他们能更清晰的表明它们要干什么。
Static_cast:可以实现内置基本数据类型之间的相互转换。如果涉及到类的话,static_cast只能在有相互联系的类型中进行相互转换,不一定包含虚函数。
Const_cast:const_cast操作不能在不同的种类间转换。相反,它仅仅把一个它作用的表达式转换成常量。它可以使一个本来不是const类型的数据转换成const类型的,或者把const属性去掉。
Reinterpret_cast:有着和C风格的强制转换同样的能力。它可以转化任何内置的数据类型为其他任何的数据类型,也可以转化任何指针类型为其他的类型。它甚至可以转化内置的数据类型为指针,无须考虑类型安全。转换的类型必须是一个指针、引用、算术类型、函数指针或者成员指针。
Dynamic_cast:
1) 其他三种都是编译时完成的,dynamic_cast是运行时处理的,运行时要进行类型检查
2) 不能用于内置的基本数据类型的强制转换
3)Dynamic_cast转换如果成功的话返回的是指向类的指针或引用,转换失败的话会返回NULL
4)使用dynamic_cast进行转换的,基类中一定要有虚函数,否则编译不通过。
5)Dynamic_cast一般是将指向派生类对象的基类指针转换为派生类指针,反之,会返回NULL。
- C++中的四种强制类型转换
- C++中的四种强制类型转换
- c++中的四种强制类型转换
- C++中的四种强制类型转换
- C++中的四种强制类型转换
- 【C++】 四种强制类型转换
- C中的类型强制转换
- 四种强制类型转换
- 四种强制类型转换
- [强制类型转换]C语言中的强制类型转换相关
- C++中的向上类型转换和向下类型转换+四种强制类型转换
- C++中的向上类型转换和向下类型转换+四种强制类型转换
- 【转】C++中的四种强制类型转换的区别
- C++中的四种强制类型转换的区别
- C++中的四种强制类型转换的区别
- C++中的四种强制类型转换的区别
- C++中的四种强制类型转换的区别 [转]
- C++中的四种强制类型转换的区别
- x86 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- IT常用Terms
- ros创建package 总结
- hdu4135 co-prime(容斥原理)
- 防火墙修改
- C++中的四种强制类型转换
- Cookbook编写
- [DFS] AOJ 0033 Ball
- 类和对象、封装和继承
- 2015072004 - 农村的高考生
- (七十八)使用第三方框架INTULocationManager实现定位
- 积分赚取太麻烦了
- 【Spark Core】任务执行机制和Task源码浅析1
- POJ2966时区时间转换