虛函數(shù)可以在函數(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ù)?為什么?
非靜態(tài)成員函數(shù)可以聲明為虛擬函數(shù)。
因為它是對象的一部分
為什么要用虛函數(shù)?
當(dāng)基類的指針指向不同派生類的對象時,如果基類的指針調(diào)用其虛擬成員函數(shù),它將調(diào)用實際指向?qū)ο蟮某蓡T函數(shù),而不是基類中定義的成員函數(shù)(只要派生類重寫成員函數(shù))。如果它不是虛函數(shù),則無論基類指針指向哪個派生類對象,都將調(diào)用在基類中定義的函數(shù)。