什么是Objective C++?

Sau*_*abh 152 c++ xcode objective-c objective-c++

什么是Objective C++,我可以在Xcode中使用这种语言吗?

Doc*_*hes 147

Objective-C++是简单的源代码,它混合了Objective-C类和C++类(两个完全不相关的实体).您的C++代码将像以前一样工作,并且生成的可执行文件将与Objective-C运行时链接,因此您的Objective-C类也将起作用.你绝对可以在Xcode中使用它 - 用.mm扩展名命名你的文件.

此外,您可能想要阅读关于Objective-C++的Apple(遗忘删除但已存档)文档.

  • 该链接中的限制部分说明了这一点并且值得引用 _Objective-C++ 不会向 Objective-C 类添加 C++ 功能,也不会将 Objective-C 功能添加到 C++ 类。例如,不能使用 Objective-C 语法调用 C++ 对象,不能向 Objective-C 对象添加构造函数或析构函数,也不能互换使用关键字 this 和 self。类层次结构是分开的;C++ 类不能从 Objective-C 类继承,Objective-C 类也不能从 C++ 类继承。另外,不支持多语言异常处理_ (3认同)

Pab*_*ruz 31

Objective-C++是Objective-C(可能带有Cocoa Framework),能够与C++代码(可能的类)链接.

是的,你可以在Xcode中使用这种语言来开发Mac OS X,iPhone/iPodTouch,iPad.它工作得很好.

您不必在项目中做任何奇怪的事情来使用Objective-C++.只需使用扩展名.mm(而不是.m)命名Objective-C文件,就可以了.

这是我最喜欢的架构:用C++开发我的游戏/应用程序的基类库,这样我就可以在其他平台(Windows,Linux)中重用它,并将Cocoa用于iPhone/iPad UI特定的东西.

  • 它不是关于*与*C++的链接*你的意思是*混合*? (10认同)

Joh*_*ato 7

如果你想使用Objective-c ++但不想命名你的文件,请查看.mm我对类似问题的回答.

如果你点击你的项目,点击你的项目,点击tagets-> build settings一直到"LLVM GCC 4.2 - 语言"(新的xcode说"Apple LLVM编译器4.2")你没有改变任何.m到.mm或类似的东西 将看到Compile Sources将值改为Objective-C++ ;

  • 绝对会,它会使用'cout'或任何不属于C的部分. (13认同)
  • 虽然你可以做到这一点,但它不是那么便携,可能会让那些试图维护代码的人感到困惑.s是标题,而.r是实现文件. (4认同)