虛函數(shù)的概念與作用 虛函數(shù)的定義?
虛函數(shù)的定義?1. 虛函數(shù)的概念虛函數(shù)是用virtual關(guān)鍵字聲明的基類函數(shù)。如果一個函數(shù)在基類中被指定為virtual,并且在派生類中有該函數(shù)的另一個定義,編譯器將知道我們不希望靜態(tài)連接該函數(shù)。我們
虛函數(shù)的定義?
1. 虛函數(shù)的概念
虛函數(shù)是用virtual關(guān)鍵字聲明的基類函數(shù)。如果一個函數(shù)在基類中被指定為virtual,并且在派生類中有該函數(shù)的另一個定義,編譯器將知道我們不希望靜態(tài)連接該函數(shù)。我們真正需要的是根據(jù)調(diào)用函數(shù)的對象的類型來選擇在程序的特定位置調(diào)用哪個函數(shù)。
2. Define
語法:virtual function return type function name(parameter table){function body}
虛擬函數(shù)必須是基類的非靜態(tài)成員函數(shù),其訪問權(quán)限可以是private、protected或public。虛擬函數(shù)的一般形式在基類的類定義中定義:
類基類名稱{
…
要在派生類中重載的虛擬返回值類型函數(shù)名稱(參數(shù)列表);
};
什么是虛函數(shù)和純虛函數(shù),有什么區(qū)別?
虛擬函數(shù)和純虛擬函數(shù)可以在其子類中重寫。它們之間的區(qū)別在于:(1)純虛函數(shù)只有定義,沒有實現(xiàn),虛函數(shù)既有定義又有實現(xiàn)代碼。純虛函數(shù)一般沒有代碼實現(xiàn)部分,如virtual void print()=0,而一般虛函數(shù)必須有代碼實現(xiàn)部分,否則函數(shù)將是未定義的。Virtual void print(){printf(“this is Virtual functionn”)}(2)包含純虛函數(shù)的類不能定義其對象,而包含虛函數(shù)的類可以定義其對象。