C++强制类型转换
来源:互联网 发布:纵横数据 编辑:程序博客网 时间:2024/05/16 19:09
为了完成强制类型转换,C++中已经为我们提供了4中标准方法,
它们是dynamic_cats, static_cast, const_cast, reinterpret_cast,
用法形式为:dynamic_cast<类型说明符>(表达式),之所以分成4类,就表示他们各自有着不同的使用环境
dynamic_cast最好些,它检查的更严格些,其次是static_cast,而后两者也就是const_cast和reinterpret_cast较之前两者貌似不太常用,而且也不推荐使用,const_cast在用于去除const的地方还是有所发挥的,reinterpret_cast在转换时,不会在内存中进行补足比特位(例如int转换到double,需要补足4字节),这往往是不安全的,而且代码也是不可移植的。
dynamic_cast: 通常在基类和派生类之间转换时使用,run-time cast
const_cast: 主要针对const和volatile的转换.
static_cast: 一般的转换,no run-time check.通常,如果你不知道该用哪个,就用这个。
reinterpret_cast: 用于进行没有任何关联之间的转换,比如一个字符指针转换为一个整形数。
注:volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。
0 0
- c++-----强制类型转换
- 【C++】强制类型转换
- C 强制类型转换
- C 强制类型转换
- C 强制类型转换
- C/C++强制类型转换。。。
- c/c++强制类型转换
- C语言类型强制转换
- c/c++强制类型转换
- C语言强制类型转换
- C中的类型强制转换
- c/c++强制类型转换
- C语言类型强制转换
- C/C++类型强制转换
- C语言强制类型转换
- C指针强制类型转换
- c/c++强制类型转换
- C/C++强制类型转换
- MySQL学习笔记_8_SQL语言基础复习
- spring mvc 配置DataSource以及动态数据源
- SQL经典
- Android 4.0 用户输入子系统
- UVA10288 - Coupons (概率+递推)
- C++强制类型转换
- Ubuntu12.04下修改grub的引导顺序
- 数据库 - 物理优化
- C/C++ 使用蔡勒公式计算日期对应星期几
- android apk 防止反编译技术-加壳技术
- cxf+spring发布webservice接口及接口的调用
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.4
- OOBE分析
- 预处理器