關于dynamic_cast
Bird *bird=dynamic_cast<Bird *>(obj);這一句不太懂。
obj是(Flyable *)類型的指針,為什么這里不用Bird *bird=(Bird *)obj來實現呢?其實我自己試了下,這樣也是可以達到效果的,但是跟使用dynamic_cast有什么區別呢
謝謝回答
Bird *bird=dynamic_cast<Bird *>(obj);這一句不太懂。
obj是(Flyable *)類型的指針,為什么這里不用Bird *bird=(Bird *)obj來實現呢?其實我自己試了下,這樣也是可以達到效果的,但是跟使用dynamic_cast有什么區別呢
謝謝回答
2016-03-23
舉報
2016-03-23
dynamic_cast會根據基類指針是否真正指向繼承類指針來做相應處理。?
對指針進行dynamic_cast,失敗返回null,成功返回正常cast后的對象指針;?
對引用進行dynamic_cast,失敗拋出一個異常,成功返回正常cast后的對象引用。?
2017-12-22
建議參考這個博文:
http://blog.csdn.net/u012999985/article/details/69056556