1)obj-c的編譯器處理后綴為m的文件時,可以識別obj-c和c的代碼,處理mm文件可以識別obj-c,c,c++代碼,但cpp文件必須只能用 c/c++代碼,而且cpp文件include的頭文件中,也不能出現(xiàn)obj-c的代碼,因?yàn)閏pp只是cpp
2) 在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是問題
3)在cpp中混用obj-c其實(shí)就是使用obj-c編寫的模塊是我們想要 的。
如果模塊以類實(shí)現(xiàn),那么要按照cpp class的標(biāo)準(zhǔn)寫類的定義,頭文件中不能出現(xiàn)obj-c的東西,包括#import cocoa的。實(shí)現(xiàn)文件中,即類的實(shí)現(xiàn)代碼中可以使用obj-c的東西,可以import,只是后綴是mm。
如果模塊以函數(shù)實(shí)現(xiàn),那么頭文件要按 c的格式聲明函數(shù),實(shí)現(xiàn)文件中,c++函數(shù)內(nèi)部可以用obj-c,但后綴還是mm或m。
總結(jié):只要cpp文件和cpp include的文件中不包含obj-c的東西就可以用了,cpp混用obj-c的關(guān)鍵是使用接口,而不能直接使用實(shí)現(xiàn)代碼,實(shí)際上cpp混用的是 obj-c編譯后的o文件,這個東西其實(shí)是無差別的,所以可以用。而obj-c混用cpp就簡單了,直接用就可以,因?yàn)閛bj-c的編譯器支持啊
轉(zhuǎn)自:http://blog.sina.com.cn/s/blog_682dc7810100jn3v.html
何在xcode中調(diào)用C++的類
(2010-06-22 09:55:08)把檔案的點(diǎn)綴名由 .m 改為 .mm, 這樣, 我們就可以在代碼里, 隨意引用 C++ 的 class了.
轉(zhuǎn)自:http://blog.sina.com.cn/s/blog_682dc7810100jn3n.html