英語翻譯
adj.實質上的,事實上的;(計算機)虛拟的;<物>有效的,虛像的;(粒子)實際存在的物。
目的
在面向對象程序設計中,派生類繼承自基類。使用指針或引用訪問派生類對象時,指針或引用本身所指向的類型可以是基類而不是派生類。如果派生類覆蓋了基類中的方法,通過上述指針或引用調用該方法時,可以有兩種結果:
- 調用到基類的方法:編譯器根據指針或引用的類型決定,稱作“早綁定”。
2.調用到派生類的方法:語言的運行時系統根據對象的實際類型決定,稱作“遲綁定”。
虛函數的效果屬于後者。如果問題中基類的函數是“虛”的,則調用到的都是最終派生類(英語:most-derivedclass)中的函數實現,與指針或引用的類型無關。反之,如果函數非“虛”,調用到的函數就在編譯期根據指針或者引用所指向的類型決定。有了虛函數,程序甚至能夠調用編譯期還不存在的函數。
在C++中,在基類的成員函數聲明前加上關鍵字virtual即可讓該函數成為虛函數,派生類中對此函數的不同實現都會繼承這一修飾符,允許後續派生類覆蓋,達到遲綁定的效果。即便是基類中的成員函數調用虛函數,也會調用到派生類中的版本。



















