1.如果父類定義的是普通virtual函式,
(1)父類必須提供乙個實現
(2)子類如果不需要實現它,可以不在函式成員中列出來,或者類檔案中列出來,不提供實現也可以;子類如果要實現它,則必須在函式成員中列出來
2.如果父類定義的是純virtual函式
(1)如果子類仍是個抽象類,可以不宣告它
(2)如果子類不是抽象類,則必須宣告它,因為編譯器需要用它來製作虛函式表
3.在子類列表中,函式前加virtual與否都可以,但google**規範建議加virtual,因為這樣可以明白看出它來自於繼承.
4.如果想在父類的函式中呼叫某函式的子類的實現,那麼這個函式必須為純虛函式
virtual 虛函式
virtual 虛函式 下面是對c 的虛函式這玩意兒的理解。一,什麼是虛函式 如果不知道虛函式為何物,但有急切的想知道,那你就應該從這裡開始 簡單地說,那些被virtual關鍵字修飾的成員函式,就是虛函式。虛函式的作用,用專業術語來解釋就是實現多型性 polymorphism 多型性是將介面與實現進...
虛函式(virtual)
上面提到動態多型主要通過虛函式機制實現,這裡介紹以下虛函式。和普通的函式宣告方式相同,只要在函式的返回值前加上virtual關鍵字,該函式就為虛函式,即virtual 函式型別 函式名 形式引數 虛函式的作用 允許通過基類的指標或引用來訪問基類和派生類的同名函式。include using name...
virtual 虛函式補充
class base private int ma class derived public base intmain 這裡分析一下p show 的反彙編 p show 將p的裡面存的值放到eax暫存器,這裡是derived物件的位址 00864b1d mov eax,dword ptr p 將ea...