用法:dynamic_cast < type-id > ( expression )
说明:Type-id必须是类的指针、类的引用或者void *;如果type-id是指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。
dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。
在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。
dynamic_cast要有虚函数,否则会编译出错;static_cast则没有这个限制。
 
用法:static_cast < type-id > ( expression )
说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
static_cast无所谓指针,替代c语言传统转换,编译时检查
 
用法:reinpreter_cast<type-id> (expression)
说明:type-id必须是一个指针、引用、算术类型、函数指针或者成员指针。
reinterpret_cast必须有指针,编译时不检查
 
用法:const_cast<type_id> (expression)
说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
const_cast只能应用于指针或引用类型。

转载于:https://www.cnblogs.com/kaishan1990/p/6425191.html

dynamic_cast, static_cast, const_cast, reinterprt_cast浅析相关推荐

  1. c++ dynamic_cast,static_cast,const_cast,reinterpret_cast四种cast用法整理

    在C++中主要分为四种cast,分别是:static_cast.dynamic_cast.const_cast和reinterpret_cast dynamic_cast动态类型转换 首先,我们明确基 ...

  2. C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast

    * C++提供了四种新的类型强制: static_cast const_cast reinterpret_cast dynamic_cast 1)staic_cast静态强制: 不能在无关的指针之间进 ...

  3. static_cast、dynamic_cast、const_cast和reinterpret_cast总结

    前言 这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的.俗话说的好,不懂自己写的代码的程序员,不是好的程序员:如果一个程序员对于自己写的代码 ...

  4. C/C++ 之 C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)

    文章转载自:https://www.cnblogs.com/chenyangchun/p/6795923.html .在了解这块时,发现了这篇文档,感觉写的很不错! c强制转换与c++强制转换 c 语 ...

  5. c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast

    c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast [版权声明]转载请注明出处 http://www.cnblogs.co ...

  6. C++的类型强制转换,static_cast,dynamic_cast,const_cast,reinterpret_cast

    1. c强制转换与c++强制转换 c语言强制类型转换主要用于基础的数据类型间的转换,语法为: (type-id)expression//转换格式1type-id(expression)//转换格式2 ...

  7. C++ 强制类型转换:static_cast、dynamic_cast、const_cast 和 reinterpret_cast

    C++ 强制类型转换:static_cast.dynamic_cast.const_cast 和 reinterpret_cast static_cast dynamic_cast const_cas ...

  8. 浅谈static_cast、dynamic_cast、const_cast、reinterpret_cast用法

    C++中的类型转换分两种:隐式类型转换和显式类型转换. 隐式转换,是标准的转换,很多时候是默认情况下由编译器进行转换: 显式转换,在C++中有四个类型的转换符:static_cast.dynamic_ ...

  9. 《C++ Primer 第五版》(第4.11-4.12节)——static_cast,const_cast和reinterpret_cast类型转换, 运算符优先级表

    1.static_cast,const_cast和reinterpret_cast类型转换 static_cast:强制的类型转换(不能用于底层的const转换),以前C语言中的强制类型转换都可以使用 ...

最新文章

  1. 部署教程 | ResNet原理+PyTorch复现+ONNX+TensorRT int8量化部署
  2. JavaScript Math和Number对象
  3. DataFrame 学习笔记
  4. 学习笔记Kafka(七)—— Kafka 与Spark集成 —— 原理介绍与开发环境配置、实战
  5. 弹窗php整人_[整人小程序] 超级信息框(无限弹窗++)
  6. 07-狄克斯特拉算法
  7. 查看Servlet 3.0的新增功能
  8. Python基础-----列表、元组、集合(2)
  9. 信息学奥赛一本通C++语言——1026:空格分隔输出
  10. 数据:PayPal 24小时内加密交易量达2.42亿美元创记录
  11. 思科DHCP不同网段通信
  12. 装备制造新亮点 机器人红利时代到来
  13. swift开发网络篇—NSURLConnection基本使用
  14. 微软sql服务器可以卸载,完美卸载SQL Server 2008的方法
  15. javascript设计模式 使用ES6语法
  16. 离线安装docker
  17. 数学建模常识及论文写作方法
  18. python爬虫爬取淘宝网页
  19. OpengL消除锯齿
  20. linux proftpd 用户,proftpd 虚拟帐号的建立及quota

热门文章

  1. ResultSet用法集锦 (转)
  2. 如何比较js 浮点数
  3. Intger To Roman
  4. 11.2.2 例题11-3 Buy or Build
  5. NHibernateLinq简单的CRUD操作
  6. IT服务管理(ITSM):IT行业变革的思考(4)
  7. Poj 3522 最长边与最短边差值最小的生成树
  8. hdu1671 字典树记录前缀出现次数
  9. 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | x(n) 分解为实部序列与虚部序列 | 实部傅里叶变换 | 虚部傅里叶变换 | 共轭对称傅里叶变换 | 共轭反对称傅里叶变换 )
  10. 【Android Gradle 插件】Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )