我經常聽說編譯器在某些條件下無法確定使用方法的確切實現。 Fox示例中,我們可以想象一個場景(所以人們會說)在父類的哪個位置使用了在子類中被重寫的方法foo(),編譯器現在不會在運行時調用foo()的哪個實現。因此,我們有動態調度,vtables等概念編譯器直到運行時才確定變量的真實類型究竟出於什麼原因?
我的問題是,確切地說爲什麼可以編譯器不能確定調用的確切實現?我最近停下來思考這個問題,我一直在努力去證明它的正確性。也許我錯過了一些非常明顯的東西(當我聽到答案時,我可能會踢自己)。這是否僅限於外部環境?如果是這樣,那該怎麼玩呢?
這是一個語言相關的限制還是有一些更基本的手頭?
的類型的表達式的總是在編譯時已知。你有一些代碼能夠說明你不確定的內容嗎? – 2014-12-10 22:35:58
好吧,動態多態性支持的整個概念**被製作爲**以在運行時啓用類型檢測/注入。 – 2014-12-10 22:36:31
編輯第一句。也許現在它更清晰了?是的,我想我已經看到這與C++。這是一個靜態類型的功能嗎? – Boon 2014-12-10 22:39:00