static_cast/const_cast
来源:互联网 发布:数据损坏修复 编辑:程序博客网 时间:2024/06/15 16:34
const_cast
用法:const_cast<type_id> (expression)
说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
常量指针被转化成非常量指针,并且仍然指向原来的对象;常量引用被转换成非常量引用,并且仍然指向原来的对象;常量对象被转换成非常量对象。static_cast
用法:static_cast < type-id > ( expression )
说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
来源:为什么需要static_cast强制转换?
情况1:void指针->其他类型指针
情况2:改变通常的标准转换
情况3:避免出现可能多种转换的歧义
它主要有如下几种用法:情况1:void指针->其他类型指针
情况2:改变通常的标准转换
情况3:避免出现可能多种转换的歧义
- 用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类指针或引用)时,由于没有动态类型检查,所以是不安全的。
- 用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。
- 把void指针转换成目标类型的指针(不安全!!)
- 把任何类型的表达式转换成void类型。
阅读全文
0 0
- const_cast & static_cast
- static_cast,const_cast
- static_cast/const_cast
- const_cast和static_cast
- static_cast, dynamic_cast, const_cast探讨
- dynamic_cast、const_cast、static_cast、reinterpret_cast
- static_cast, dynamic_cast, const_cast, reinterpret_cast
- const_cast,reinterpret_cast,static_cast,dynamic_cast
- const_cast、static_cast、reinterpret_cast、dynamic_cast
- static_cast,const_cast,dynamic_cast,reinterpret_cast
- const_cast,reinterpret_cast,static_cast,dynam
- dynamic_cast;const_cast;static_cast;reinterpret_cast;
- dynamic_cast 、reinterpret_cast 、 static_cast 、 const_cast
- dynamic_cast,const_cast,static_cast,reinterpret_cast
- static_cast,dynamic_cast,reinterpret_cast,const_cast
- static_cast, dynamic_cast, reinterpret_cast, const_cast
- static_cast、const_cast、reinterpret_cast、dynamic_cast
- static_cast、const_cast、reinterpret_cast
- 面向对象-多态
- Oracle正式发布Java 9,引入新的Java编程组件
- web项目直接访问WEB-INF下的文件
- solr(一) solr5.5 搭建
- 第五周项目一 建立顺序栈算法库
- static_cast/const_cast
- Python字符串的连接、替换、截取,以及字符串格式化输出,引号
- 数据库工具phpmyadmin
- Android studio 手动导入包或自动导入包 import
- java中
- 关于“#ifdef __cplusplus” 和 " extern "C" 的问题
- 4.垃圾收集器与内存分配策略
- Android开发技巧之使用自定义注解
- 第五周项目1