- OC的编译器处理后缀为m的文件时,可以识别OC和C的代码,处理mm文件可以识别OC、C、C++代码,但cpp文件必须只能用C/C++代码,而且cpp文件include的头文件中,也不能出现OC的代码,因为cpp只是cpp
- 在mm文件中混用cpp直接使用即可,所以OC混cpp不是问题
- 在cpp中混用OC其实就是使用OC编写的模块是我们想要的。
如果模块以类实现,那么要按照cpp class的标准写类的定义,头文件中不能出现OC的东西,包括#import cocoa的。实现文件中,即类的实现代码中可以使用OC的东西,可以import,只是后缀是mm。
如果模块以函数实现,那么头文件要按C的格式声明函数,实现文件中,C++函数内部可以用OC,但后缀还是mm或m。
总结:
只要cpp文件和cpp include的文件中不包含OC的东西就可以用了,cpp混用OC的关键是使用接口,而不能直接使用实现代码,实际上cpp混用的是OC编译后的o文件,这个东西其实是无差别的,所以可以用。OC的编译器支持cpp.
网友评论