亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

判斷完是哪一類之后直接 調用land 和 foraging不可以嗎?

if(typeid(*obj)==typeid(Bird))

{obj->foraging;

}

結果不一樣嗎?為什么一定要轉換指針類型呢

正在回答

2 回答

obj 是指向基類的指針,不能直接操作子類的方法。

dynamic_cast主要用于在多態的時候,它允許在運行時刻進行類型轉換,從而使程序能夠在一個類層次結構中安全地轉換類型,把基類指針(引用)轉換為派生類指針(引用)。

3 回復 有任何疑惑可以回復我~
#1

present21 提問者

非常感謝!
2016-05-05 回復 有任何疑惑可以回復我~

基類指向子類的指針只可以調用基類自己擁有的成員,而覓食和搬運這兩個是子類特有的成員,父類指針無法直接調用。所以需要將父類指針轉化為子類(Bird)指針,這樣子才可以調用子類獨有的成員函數!



1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之多態篇
  • 參與學習       66224    人
  • 解答問題       334    個

本教程將帶領大家體會面向對象三大特性中的多態特性

進入課程

判斷完是哪一類之后直接 調用land 和 foraging不可以嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號