使用Objective-C中的.mm文件有什么怪癖/惊喜?

MrD*_*ase 5 c++ objective-c objective-c++

我想在Objective-C iPhone应用程序中使用一些C++ STL集合.显然,这可以通过为文件提供扩展名".mm"来实现.有什么与此相关的怪癖/惊喜?

我想使用我熟悉的基本容器(矢量,队列,集合......)

干杯!

Ada*_*eld 7

有关您可以做什么和不可以做什么的详细列表,请参阅使用带有Objective-C的C++.你可以做大多数你期望的事情.你不能做像C++类从Objective-C类继承的事情,反之亦然,你不能将C++异常与Objective-C异常混合,而C++引入了几个Objective-C中没有的新关键字.

  • @noloader:是的,这很不幸.该文章仍可在[archive.org]上找到(http://replay.web.archive.org/20090423073703/http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html ).看起来Apple刚从"Objective-C 2.0编程语言"文档中完全删除了该章节(以及有关远程消息传递的章节). (2认同)

小智 5

Objective-C++的主要特点是如果你不将-fobjc-call-cxx-cdtors传递给g ++,它就不会调用ObjC对象中C++实例变量的构造函数和析构函数.所以记得打开那个选项,你应该很好.