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