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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于c++一個多態的問題

關于c++一個多態的問題

C++
搖曳的薔薇 2018-07-05 15:10:51
A派生B,B派生C,現在A,B,C都有一個disp函數(同名同參)用來輸出自己的類名?,F在是這樣的C *c = new C;B *b = c; //注意這里用的是Bb->disp(); //當A,B,C的disp函數都不用virtual修飾,輸出結果是B//如果只給A的disp函數使用virtual修飾,我本來以為還是輸出B,但實際上輸出了C。那么為什么?
查看完整描述

1 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

你其實對virtual關鍵字的繼承關系有誤解。你的直觀感覺是“我只給A的disp函數添加了virtual修飾”,但事實是,由于編譯器檢測到B中的disp()函數是A中的虛函數disp的重載形式,該函數也自動成為virtual函數,不論你是否顯式聲明了virtual關鍵字。然后,根據繼承關系,C中的disp也同理。

查看完整回答
反對 回復 2018-07-31
  • 1 回答
  • 0 關注
  • 689 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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