課程
/后端開發(fā)
/C++
/C++遠征之多態(tài)篇
在flymatch函數(shù)中為什么要傳入指針呢?
2016-01-08
源自:C++遠征之多態(tài)篇 3-6
正在回答
首先flymatch函數(shù)不僅可以傳入指針,還可以傳入實例化對象。
1、課程中為什么要傳入flyable指針呢,是基于基類的引用和指針可以引用子類的對象這一原則,也就是說flyable *p? 這個指針既可以引用bird也可以引用plan,這樣做的好處后面會說到。
2、那為什么不用flyable p 呢,是因為flyable是純虛函數(shù),flyable p就是實例化一個flyable的對象p。顯而易見,純虛函數(shù)是不能被實例化的,所以flyable p 是非法的。
3、那可以傳入什么樣的實例化對象呢,bird和plan的實例化對象都可以。但是一旦這樣做了就會有一個限制,如果函數(shù)中聲明的是一個bird的對象,那么這個函數(shù)就不能再調(diào)用plan的對象了,因為bird和plan是兩個完全不同的類,所以函數(shù)只能接受bird的對象而不能接受plan的對象,就像一個人如果是男人,那么他肯定不可能是女人。如果想處理plan的對象,那么只能再創(chuàng)建另外一個函數(shù)來處理了。
4、事實都不是絕對的,人妖的出現(xiàn)證明了一個人即可以是男人也可以是女人,而flayable *p的出現(xiàn)呢,就是為了讓函數(shù)即可以調(diào)用bird的對象又可以調(diào)用plan的對象以及其它flyable的子類對象,這種編程靈活性是所有編程人員所崇尚的。
講解完畢,如果幫到你請給個好評吧!媳婦非得要那個慕課君抱枕,拼命賺積分ing。。。。。。
paopaonb 提問者
vortesnail
請問您說的是哪一課?傳入指針在某種情況下很方便
舉報
本教程將帶領(lǐng)大家體會面向?qū)ο笕筇匦灾械亩鄳B(tài)特性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-01-08
首先flymatch函數(shù)不僅可以傳入指針,還可以傳入實例化對象。
1、課程中為什么要傳入flyable指針呢,是基于基類的引用和指針可以引用子類的對象這一原則,也就是說flyable *p? 這個指針既可以引用bird也可以引用plan,這樣做的好處后面會說到。
2、那為什么不用flyable p 呢,是因為flyable是純虛函數(shù),flyable p就是實例化一個flyable的對象p。顯而易見,純虛函數(shù)是不能被實例化的,所以flyable p 是非法的。
3、那可以傳入什么樣的實例化對象呢,bird和plan的實例化對象都可以。但是一旦這樣做了就會有一個限制,如果函數(shù)中聲明的是一個bird的對象,那么這個函數(shù)就不能再調(diào)用plan的對象了,因為bird和plan是兩個完全不同的類,所以函數(shù)只能接受bird的對象而不能接受plan的對象,就像一個人如果是男人,那么他肯定不可能是女人。如果想處理plan的對象,那么只能再創(chuàng)建另外一個函數(shù)來處理了。
4、事實都不是絕對的,人妖的出現(xiàn)證明了一個人即可以是男人也可以是女人,而flayable *p的出現(xiàn)呢,就是為了讓函數(shù)即可以調(diào)用bird的對象又可以調(diào)用plan的對象以及其它flyable的子類對象,這種編程靈活性是所有編程人員所崇尚的。
講解完畢,如果幫到你請給個好評吧!媳婦非得要那個慕課君抱枕,拼命賺積分ing。。。。。。
2016-01-08
請問您說的是哪一課?傳入指針在某種情況下很方便