如何在XCode中使用带有Objective-C的C++

pro*_*eek 21 c++ xcode objective-c objective-c++

我想在Objective-C中使用/重用C++对象.我有一个具有类定义的hello.h和用于类实现的hello.cpp.

class Hello
{ int getX() ... };
Run Code Online (Sandbox Code Playgroud)

我在Objective-C函数中使用这个类.

#include "hello.h"
...
- (IBAction) adderTwo:(id)sender
{
    Hello *hi = new Hello();            
    int value = hi->getX();
    NSLog(@"Hello %d", value);
    [textField setIntValue:value];
Run Code Online (Sandbox Code Playgroud)

当我在Xcode中编译代码时,我收到此错误消息.

class Hello *XXXXX
Users/smcho/Desktop/cocoa/adderTwo/hello.h:9:0
/Users/smcho/Desktop/cocoa/adderTwo/hello.h:9: 
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Hello'

什么地方出了错?

ken*_*ytm 34

确保将该文件编译为"Objective-C++".

最简单的方法是将其重命名为*.mm.

如果您不想重命名*.m文件,

  1. 选择你的文件.
  2. 打开"文件信息"对话框(Cmd + I)
  3. 在"文件类型"中,选择"sourcecode.cpp.objcpp"


Mar*_*tos 7

重命名从Objective-C的文件filename.m,以filename.mm使其作为编译的Objective-C++.