C++类型转换:const_cast,static_cast,reinterpret_cast和dynamic_cast
来源:互联网 发布:人工智能门户 编辑:程序博客网 时间:2024/05/16 05:58
(1) const_cast
用法:const_cast<tyoe_id>(expression_r_r)
作用:用来修改类型的const或volatile属性。
转换:a.常量指针被转化成非常量指针,并且仍然指向原来的对象;
b.常量引用被转换成非常量引用,并且仍然指向原来的对象;
c.常量对象被转换成非常量对象。
(2) satic_cast
用法:static_cast < type-id > ( expression_r_r )
该运算符把expression_r_r转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
转换:a.类层次结构中基类和子类之间指针或引用的转换;
b.基本数据类型之间的转换,如把int转换成char,把int转换成enum;(这种转换的安全性也要开发人员来保证)
c.空指针转换成目标类型的空指针;
d.任何类型的表达式转换成void类型。
注:static_cast不能转换掉expression_r_r的const、volitale、或者__unaligned属性。
(3) reinterpret_cast
用法:reinpreter_cast<type-id> (expression_r_r)
转换:指针和整数之间的互换。
注:type-id必须是一个指针、引用、算术类型、函数指针或者成员指针。(4) dynamic_cast
用法:dynamic_cast < type-id > ( expression_r_r )
转换:a.类层次间的上行转换和下行转换;
b.类之间的交叉转换。
注:Type-id必须是类的指针、类的引用或者void *。
总结:
- static_cast, const_cast, dynamic_cast, 和reinterpret_cast 类型转换
- static_cast、dynamic_cast、reinterpret_cast和const_cast 类型转换
- [C++] 强制类型转换static_cast、dynamic_cast、reinterpret_cast和const_cast
- 【C++】强制类型转换(static_cast,reinterpret_cast,const_cast,dynamic_cast,explicit)
- c++dynamic_cast、const_cast 、static_cast、reinterpret_cast强制类型转换
- static_cast dynamic_cast const_cast reinterpret_cast 类型转换
- C++ - 类型转换 static_cast, dynamic_cast, reinterpret_cast, const_cast
- 类型转换static_cast dynamic_cast const_cast reinterpret_cast
- C++类型转换 static_cast, dynamic_cast, reinterpret_cast, const_cast
- C++类型转换:static_cast、const_cast、dynamic_cast、reinterpret_cast
- C++类型转换 static_cast、dynamic_cast、const_cast、reinterpret_cast
- C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast
- 类型转换-static_cast、dynamic_cast、reinterpret_cast、const_cast探讨
- reinterpret_cast,static_cast,dynamic_cast,const_cast类型转换
- xxx_cast类型转换static_cast/const_cast/reinterpret_cast/dynamic_cast
- 强制类型转换 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
- git第三篇---建立一个project
- matlab out of memory问题
- 【cocos2d-x 3.x 学习笔记】 HelloWorld —— 小程序大道理
- html css设置背景
- CRT终端显示乱码问题
- C++类型转换:const_cast,static_cast,reinterpret_cast和dynamic_cast
- Android 程序框架设计
- 操作系统内存管理——分区、页式、段式管理
- Java - 网络编程 - UDP
- Your Ride Is Here
- 落花人独立,微雨燕双飞——晏几道《临江仙》
- Cocos2d-x 3.0 屏幕触摸及消息分发机制
- 清华2006年复试题
- eclipse工具使用