摘要: Objective C 與 C++ 兩者最大的相同便是: 都是從 C 演化而來的面向對象語言, 兩者都兼容標準 C 語言; 兩者最大的不同便是: Objective C 提供了運行期動態綁定機制, 而 C++ 是編譯時靜態綁定, 并通過嵌入類(多重繼承)和虛函數(虛表)來模擬實現. Objective C 在語言層次上支持動態消息轉發, 其函數調用語法為 [object function], 而且C++ 為 object->function(). 兩者的語義也有不同, 在 Objective C 里是說發送消息到一個對象上, 至于這個對象能不能處理消息(也就是說實現了這個函數與否)以及是處理還是轉發消息都不會 crash, 而在 C++ 里是說對象進行了某個操作,如果對象沒有這個操作的話,要么編譯會報錯(靜態綁定),要么程序會 crash 掉的(動態綁定).
閱讀全文