Xcode中的Objective-C ++和.cpp文件

时间:2010-09-13 07:18:18

标签: c++ xcode class objective-c++

我正在尝试制作一个简单的Objective-C ++应用程序。我的所有代码都编译得很好,包括在Objective-C类中使用C ++,直到我尝试添加一个C ++类。我创建了一个简单的C ++类:

Test.h

class Test {

};

并将此文件包含在Objective-C类(扩展名为.mm)中,并且出现以下构建错误:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Test'

显然,我在这里错过了一些简单的概念。我很欣赏一些启发。

4 个答案:

答案 0 :(得分:2)

好吧,在Apple's Documentation上更仔细地扫描后,看起来是在头文件中使用__cplusplus预处理程序标志的答案。以下是代码现在的样子:

#ifdef __cplusplus

class Test {

};

#endif

答案 1 :(得分:2)

helixed的答案无济于事,如果__cplusplus未定义,您的课程将被预处理器遮挡。

最重要的是你试图从* .m文件中包含C ++类,尝试将其重命名为* .mm。 这解决了我身上的同样问题。

答案 2 :(得分:2)

预处理器命令不应该是:

#ifdef __cplusplus

答案 3 :(得分:0)

在Xcode 6中有以下选项:

Apple LLVM 6.0 - Language -> Compile Sources As

您可以将其设置为Objective-C ++,然后文件扩展名无关紧要。如果您正在跨平台工作并且需要使用其他文件扩展名,这将非常有用。