您的位置:首页 > 其它

4个类型转换关键字

2015-07-06 19:20 260 查看
const_cast

static_cast

dynamic_cast<>

reienterpret_cast<>

经常不被使用的是3和4,重点说之。

dynamic_cast在类的继承关系的前提下使用,没有继承关系的类之间转换会为空。其中虚函数的特性非常重要,在这里重点体现;

如果没有虚函数,该转换也会发生问题。(经常在书上看到RTTI特性和此相关的说明,可能就是这个问题)

1.基类转换到子类,发生错误;(其实也不是错误,就是为空了)(安全性检测的重要性,也就是说不要把基类转换到子类)

2.子类转换到基类,正确,也就是常说的向下转换,调用的也是相应的虚函数;

(测试中发现问题,很简单,用到该关键字就要考虑继承的类之间是否有虚函数表)

reienterpret_cast:

可以把一个指针转换为非指针,同理也可以把非指针转换为指针,很神奇,慎用之。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: