1)obj-c的編譯器處理字尾為m的檔案時,可以識別obj-c和c的**,處理mm檔案可以識別obj-c,c,c++**,但cpp檔案必須只能用c/c++**,而且cpp檔案include的標頭檔案中,也不能出現obj- c的**,因為cpp只是cpp。
2) 在mm檔案中混用cpp直接使用即可,所以obj-c混cpp不是問題
3) 在cpp中混用obj- c其實就是使用obj-c編寫的模組是我們想要的。如果模組以類實現,那麼要按照cpp class的標準寫類的定義,標頭檔案中不能出現obj-c的東西,包括#importcocoa的。 實現檔案中,即類的實現**中可以使用obj-c的東西,可以import,只是字尾是mm。如果模組以函式實現,那麼標頭檔案要按 c的格式宣告函式,實現檔案中,c++函式內部可以用obj-c,但字尾還是mm或m。總結:只要cpp檔案和cpp include的檔案中不包含 obj-c的東西就可以用了,cpp混用obj-c的關鍵是使用介面,而不能直接使用實現**,實際上cpp混用的是obj-c編譯後的o文 件,這個東西其實是無差別的,所以可以用。obj-c的編譯器支援cpp
c和obj c如何混用?
1 obj c的編譯器處理字尾為m的檔案時,可以識別obj c和c的 處理mm檔案可以識別obj ccc 但cpp檔案必須只能用c c 而且cpp檔案include的標頭檔案中,也不能出現obj c的 因為cpp只是cpp 2 在mm檔案中混用cpp直接使用即可,所以obj c混cpp不是問題 3 ...
C C和C 的混用
c和c 語法上有很多相同的地方,但是兩種語言混合程式設計是有問題的。例如,在c中,函式set被編譯器翻譯成 set,就是說在鏈結查抄是,使用的是 set這個名字找到的set函式。而c 中,由於函式過載特性,編譯器在函式名的翻譯中,需要使用函式具體使用的引數型別,例如set int 函式,會被翻譯成 ...
C 過載和繼承混用會怎樣?
overload就是過載,大家都會。但是大家有沒有想過,我們呼叫乙個過載方法的時候會呼叫哪個呢?答案是和簽名最接近的乙個。大家是不是看到這裡已經開始覺得這個部落格很無聊了,都是這麼簡單的內容。沒關係,我們慢慢深入。我們知道方法為了能夠減少書寫個數,提供了乙個叫預設引數的東西 voidp object...