22

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

class Hello
{ int getX() ... };

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

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

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

班级你好*XXXXX
用户/smcho/Desktop/cocoa/adderTwo/hello.h:9:0
/Users/smcho/Desktop/cocoa/adderTwo/hello.h:9:
错误:在 'Hello' 之前应有 '='、','、';'、'asm' 或 '__attribute__'

什么地方出了错?

4

2 回答 2

34

确保将该文件编译为“Objective-C++”。

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

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

  1. 选择您的文件。
  2. Open the File Info dialog (Cmd+I)
  3. In File Type, select "sourcecode.cpp.objcpp"
于 2010-04-21T13:11:11.407 回答
7

将 Objective-C 文件从 重命名filename.mfilename.mm以使其编译为 Objective-C++。

于 2010-04-21T13:10:44.897 回答