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