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

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

子類與頂層父類間的值傳遞

為什么這里的MigrantWorker傳入的yellow的顏色值可以傳遞到頂層父類Person中,能夠打印出來,而在后面的用了virtual虛繼承后打印出來的就是默認值blue?

正在回答

2 回答

上面同學也說了,但我猜測,為什么不能傳遞呢,是由于虛繼承的時候,為了避免多次出現Person的定義以及成員的傳遞,它干脆強制將頂層父類的成員以影印的方式傳遞一份下來,這樣子就能避免你往頂層父類傳遞參數的時候,再次往下傳到子類時出現重復。

例如你圖片中的情況,實際上就有兩個頂層父類傳下來的color,如果不禁止你往回傳遞參數的話,無法將 只需要一份的color成員 傳遞參數值的‘權利’給Worker或Farmer,這時如果都有權利望頂層父類Person傳遞color的話,勢必會導致MigrantWorker有兩個color。因此它干脆不讓你傳遞回去了。

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

虛繼承中,頂層父類無法接受子類的參數傳遞,所以只能打印出來默認值blue,老師在講課的時候稍微提了下。如果有興趣的話可以自己通過編程驗證一下。

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

舉報

0/150
提交
取消
C++遠征之繼承篇
  • 參與學習       75192    人
  • 解答問題       251    個

繼承,C++面向對象三大特征之一,通過編碼實踐方式講解到操作層面

進入課程

子類與頂層父類間的值傳遞

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

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

幫助反饋 APP下載

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

公眾號

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