2010-07-30 99 views

回答

10

當你有一個指向一個對象的指針時,該對象可能實際上是一個從指針類派生的類(例如,Vehicle *實際上指向一個Car對象;這稱爲「多態性「)。因此,有兩種類型:指針的(靜態)類型(在這種情況下爲Vehicle)和指向對象(在這種情況下爲Car)的(動態)類型。

靜態類型意味着成員函數調用的合法性在最早可能的時刻被檢查:在編譯時由編譯器檢查。編譯器使用指針的靜態類型來確定成員函數調用是否合法。如果指針的類型可以處理成員函數,那麼指向的對象也可以處理它。例如,如果車輛具有特定的成員功能,當然由於車輛是一種車輛,因此車輛也具有該成員功能。

動態綁定意味着成員函數調用中代碼的地址是在最後可能的時刻確定的:基於運行時對象的動態類型。它被稱爲「動態綁定」,因爲綁定到實際調用的代碼是動態實現的(運行時)。動態綁定是虛擬功能的結果。