課程
/后端開發(fā)
/C++
/C++遠(yuǎn)征之多態(tài)篇
為什么去掉基類的eat(),move()子類有 ,怎么不能直接調(diào)用子類的move()eat()??
2018-03-11
源自:C++遠(yuǎn)征之多態(tài)篇 2-11
正在回答
類實例化過程中,使用父類指針指向子類對象時,指向的是繼承的成員函數(shù),子類對象特有的部分,父類對象無法實現(xiàn)訪問。所以,這里是父類指針,當(dāng)然不能直接調(diào)用子類的特有成員函數(shù),因為父類中根本就沒有。確定兩者之間的從屬關(guān)系后,再看這問題就容易多了。
父類指針只能訪問子類中的函數(shù),且必須是這函數(shù)父類中有。
因為你聲明的是一個父類的指針,實例化為一個子類對象,子類的行為繼承了父類,你去找一個父類并沒有的行為特征,當(dāng)然會找不到。
舉報
本教程將帶領(lǐng)大家體會面向?qū)ο笕筇匦灾械亩鄳B(tài)特性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-09-21
類實例化過程中,使用父類指針指向子類對象時,指向的是繼承的成員函數(shù),子類對象特有的部分,父類對象無法實現(xiàn)訪問。所以,這里是父類指針,當(dāng)然不能直接調(diào)用子類的特有成員函數(shù),因為父類中根本就沒有。確定兩者之間的從屬關(guān)系后,再看這問題就容易多了。
2018-09-11
父類指針只能訪問子類中的函數(shù),且必須是這函數(shù)父類中有。
2018-03-12
因為你聲明的是一個父類的指針,實例化為一個子類對象,子類的行為繼承了父類,你去找一個父類并沒有的行為特征,當(dāng)然會找不到。