什么是目标 C++? [关闭]
Posted
技术标签:
【中文标题】什么是目标 C++? [关闭]【英文标题】:What is Objective C++? [closed] 【发布时间】:2010-09-10 11:09:30 【问题描述】:什么是 Objective C++,我可以在 Xcode 中使用这种语言吗?
【问题讨论】:
“很难说出所问的内容”的关闭原因是关闭问题的较早原因。这些天来,原因会“太宽泛”,因为 OP 实际上是两个不同的问题。首先,解释 Objective C++ 需要花费好几页来解决,其次,ios 编码是专门使用 Objective C 完成的,而 XCode 是 iOS 开发的默认 IDE,因此即使两者相关,它本身也是一个太大的问题。此类问题应移至文档站点。 @DaveVoyles-MSFT:我很难认真对待那些认为投反对票和机械化、工业化、有组织、有系统地对超过 600 万人进行大规模谋杀是一回事的人。 @JörgWMittag 很抱歉,您的回复已被 Stack Overflow 版主关闭,因为这不是一个真正的问题。 @DaveVoyles-MSFT:“不是一个真正的问题”接近投票的理由在几年前就被删除了。 关闭原因不是真正的原因,很难说出反对者的问题。这个原因是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式合理解释。 【参考方案1】:Objective-C++ 只是混合了 Objective-C 类和 C++ 类(两个完全不相关的实体)的源代码。您的 C++ 代码将像以前一样工作,生成的可执行文件将与 Objective-C 运行时链接,因此您的 Objective-C 类也将正常工作。您绝对可以在 Xcode 中使用它——使用 .mm
扩展名命名您的文件。
另外,您可能想阅读Apple's (sadly deleted, but archived) documentation on Objective-C++。
【讨论】:
该链接中的限制部分说明了这一点,值得引用 Objective-C++ 不会将 C++ 功能添加到 Objective-C 类,也不会将 Objective-C 功能添加到 C++ 类。例如,不能使用 Objective-C 语法调用 C++ 对象,不能向 Objective-C 对象添加构造函数或析构函数,不能互换使用关键字 this 和 self。类层次结构是分开的; C++ 类不能从 Objective-C 类继承,Objective-C 类不能从 C++ 类继承。另外,不支持多语言异常处理【参考方案2】:Objective-C++ 是具有与 C++ 代码(可能的类)链接能力的 Objective-C(可能带有 Cocoa 框架)。
是的,您可以在 Xcode 中使用这种语言为 Mac OS X、iPhone/iPodTouch、iPad 进行开发。效果很好。
您不必在项目中做任何奇怪的事情来使用 Objective-C++。只需使用扩展名 .mm(而不是 .m)命名您的 Objective-C 文件即可。
这是我最喜欢的架构:用 C++ 开发我的游戏/应用程序的基类库,这样我就可以在其他平台(Windows、Linux)中重用它,并将 Cocoa 仅用于 iPhone/iPad UI具体的东西。
【讨论】:
这不是关于 linking 与 C++ - 你的意思是 mixing 吗?以上是关于什么是目标 C++? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章