1
76
你需要说出你的名字 m 文件夹 毫米 . 您将能够用Objtovi-C编译C++代码。 因此,按照您的示例, Am 文件应命名为 查看详情 . 就这么简单。它工作得很好。我在iPhone项目中使用了很多STD容器(STD::Vector,STD::队列等)和遗留C++代码,没有任何并发症。 |
2
5
没关系,我觉得自己很蠢。您所要做的就是将aview.m重命名为aview.m m,这样编译器就知道它是Objective-C++,编译时不会出现问题。 |
3
2
可以通过C++类的前向声明来保持接口清洁器:
|
4
1
我分享了我在这个话题上理解的一些观点。 我们可以将.cpp和.m文件与纯C接口混合。众所周知,CLAN编译器将支持C++、目标C以及目标C++,这可能是混合这些语言的一种更好的方法。 混合这些语言时要注意的一件事是使用头文件。通过在类扩展中声明CPP对象,我们可以将C++保持在我们的目标C标题中。 或者,我们可以在目标cpp(.mm)文件中@implementation块的开头声明cpp对象。 当我们处理cpp对象时,管理内存将是一个问题。我们可以使用__new_trade为对象分配内存,并通过调用__delete object_trade释放内存。通常,如果我们使用ARC,我们不需要知道释放对象的内存。 当使用cpp类时,我们可以用两种方式声明cpp对象,如cpp wrapper wrapper和cpp wrapper*wrapper,其中cpp wrapper是cpp类。当我们使用后者时,程序员负责管理内存。 另一个主要问题是,当我们使用参数调用一个目标C方法时,我们正在传递引用,而在cpp中,我们需要使用__&226;_关键字通过引用传递参数,否则会传递对象的副本。 目标C对象的释放是在运行时处理的,当对cpp对象调用__delete_时,它将不再保留在内存中。 在编写cpp时,我们共享指针和弱指针,这类似于目标c中的强指针和弱指针。 http://philjordan.eu/article/mixing-objective-c-c++-and-objective-c++ http://www.raywenderlich.com/62989/introduction-c-ios-developers-part-1 |
5
0
在您希望引入一个简单的C++函数的情况下
改变“
.mm扩展名只标识文件类型;然后您要查找的是Objective-C++而不是Objective-C类型。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |