析構(gòu)函數(shù)為什么是虛函數(shù) 為什么要用虛函數(shù)?
為什么要用虛函數(shù)?當(dāng)使用基類指針指向不同派生類的對(duì)象時(shí),如果基類指針調(diào)用其虛成員函數(shù),則會(huì)調(diào)用實(shí)際指向該對(duì)象的成員函數(shù),而不是基類中定義的成員函數(shù)(只要派生類重寫(xiě)成員函數(shù)即可)。如果它不是虛函數(shù),則無(wú)
為什么要用虛函數(shù)?
當(dāng)使用基類指針指向不同派生類的對(duì)象時(shí),如果基類指針調(diào)用其虛成員函數(shù),則會(huì)調(diào)用實(shí)際指向該對(duì)象的成員函數(shù),而不是基類中定義的成員函數(shù)(只要派生類重寫(xiě)成員函數(shù)即可)。如果它不是虛函數(shù),則無(wú)論基類指針指向哪個(gè)派生類對(duì)象,都將調(diào)用在基類中定義的函數(shù)。
虛函數(shù)的定義?
1. 虛函數(shù)的概念
虛函數(shù)是用virtual關(guān)鍵字聲明的基類函數(shù)。如果一個(gè)函數(shù)在基類中被指定為virtual,并且在派生類中有該函數(shù)的另一個(gè)定義,編譯器將知道我們不希望靜態(tài)連接該函數(shù)。我們真正需要的是根據(jù)調(diào)用函數(shù)的對(duì)象的類型來(lái)選擇在程序的特定位置調(diào)用哪個(gè)函數(shù)。
2. Define
語(yǔ)法:virtual function return type function name(parameter table){function body}
虛擬函數(shù)必須是基類的非靜態(tài)成員函數(shù),其訪問(wèn)權(quán)限可以是private、protected或public。虛函數(shù)的一般形式在基類的類定義中定義:
class基類名{
…
虛返回值類型函數(shù)名(參數(shù)列表)在派生類中重載;]};