如何解釋全局函數(shù)的參數(shù)是兩個(gè)抽象類類型的指針
????全局函數(shù)的兩個(gè)參數(shù)是兩個(gè)抽象類類型指針,為什么普通的傳兩個(gè)Flyable類型就會(huì)出錯(cuò)
void?flyMatch(Flyable?*f1,?Flyable?*f2);//正確的是這樣的
void?flyMatch(Flyable?f1,?Flyable?f2);//這樣為什么不行
求解????????
????全局函數(shù)的兩個(gè)參數(shù)是兩個(gè)抽象類類型指針,為什么普通的傳兩個(gè)Flyable類型就會(huì)出錯(cuò)
void?flyMatch(Flyable?*f1,?Flyable?*f2);//正確的是這樣的
void?flyMatch(Flyable?f1,?Flyable?f2);//這樣為什么不行
求解????????
2015-12-11
舉報(bào)
2015-12-13
哦,F(xiàn)lyable這是個(gè)純虛的基類,這種類是不能實(shí)例化的,只能通過此種類型的指針來訪問派生類。
在調(diào)用函數(shù)時(shí),函數(shù)的參數(shù)會(huì)被構(gòu)造出來,所以參數(shù)也不能直接聲明為這種類型,聲明成指針就沒問題。
2015-12-12
d:\程序\c++\test\接口類\接口類\main.cpp(14): error C2259: “Flyable”: 不能實(shí)例化抽象類
另外說明我是按照教學(xué)視頻里的那樣,定義Flyable是一個(gè)接口類
2015-12-12
第一條語句:flyMatch函數(shù)的參數(shù)類型是指針。
第二條語句:是flyMatch函數(shù)的重載聲明,其參數(shù)類型為Flyable。
這看起來沒什么錯(cuò),也許錯(cuò)誤在別處,你得到的報(bào)錯(cuò)是什么?