4个类型转换关键字
  • const_cast
  • static_cast
  • dynamic_cast<>
  • reienterpret_cast<>
    经常不被使用的是3和4,重点说之。

dynamic_cast在类的继承关系的前提下使用,没有继承关系的类之间转换会为空。其中虚函数的特性非常重要,在这里重点体现;
如果没有虚函数,该转换也会发生问题。(经常在书上看到RTTI特性和此相关的说明,可能就是这个问题)
1.基类转换到子类,发生错误;(其实也不是错误,就是为空了)(安全性检测的重要性,也就是说不要把基类转换到子类)
2.子类转换到基类,正确,也就是常说的向下转换,调用的也是相应的虚函数;
(测试中发现问题,很简单,用到该关键字就要考虑继承的类之间是否有虚函数表)

reienterpret_cast:
可以把一个指针转换为非指针,同理也可以把非指针转换为指针,很神奇,慎用之。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xia1213zhao/article/details/46778183
文章标签: c++ dynamic
个人分类: c++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

4个类型转换关键字

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭