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