已采納回答 / 太陽雨下
不一定,如果是private權限的,就不會,其它情況會,這樣就算不是虛函數也是一樣的。子類繼承父類,在創建類的時候就會有一個虛函數表的概念,如果子類沒重寫同名函數,子類的虛函數表關于該函數的入口地址就會指向父類的該函數的代碼入口地址
2015-12-28
已采納回答 / 太陽雨下
先說個函數指針的概念,每個類(除了空類,就是沒有方法也沒有屬性的類)在創建的時候,就會生成一個虛函數表指針,這個指針與普通的指針一樣,存的是函數的入口地址,這是在類生成的時候就建立的。下來說幾種情況:父類實現了非virtual修飾的方法一,子類繼承父類,子類沒有再實現方法一,這樣父類與子類的關于方法一在各自虛函數表中的地址是一樣的,也就是子類可以直接用父類的方法,而不用再去實現;父類實現了非virtual修飾的方法一,子類繼承父類,子類重寫了方法一,這樣子類的虛函數表的方法一的地址與父類的虛函數表的方法一...
2015-12-28
已采納回答 / onemoo
不加virtual,這個函數就不是虛函數,也就不會被子類繼承。在子類中重新定義這函數,只能算是子類又定義了一個同名的函數,不會有多態的特性。即通過父類只能訪問到父類的版本。
2015-12-23
已采納回答 / onemoo
哦,Flyable這是個純虛的基類,這種類是不能實例化的,只能通過此種類型的指針來訪問派生類。在調用函數時,函數的參數會被構造出來,所以參數也不能直接聲明為這種類型,聲明成指針就沒問題。
2015-12-11