为了账号安全,请及时绑定邮箱和手机立即绑定

关于dynamic_cast

Bird *bird=dynamic_cast<Bird *>(obj);这一句不太懂。

obj是(Flyable *)类型的指针,为什么这里不用Bird *bird=(Bird *)obj来实现呢?其实我自己试了下,这样也是可以达到效果的,但是跟使用dynamic_cast有什么区别呢

谢谢回答

正在回答

2 回答

dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理。 

对指针进行dynamic_cast,失败返回null,成功返回正常cast后的对象指针; 

对引用进行dynamic_cast,失败抛出一个异常,成功返回正常cast后的对象引用。 

0 回复 有任何疑惑可以回复我~
#1

深井冰糖 提问者

非常感谢!
2016-03-26 回复 有任何疑惑可以回复我~

建议参考这个博文:

http://blog.csdn.net/u012999985/article/details/69056556

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

关于dynamic_cast

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信