未知的类型名称'class'; 你的意思是'上课'吗?AurioTouch

Lor*_*vin 6 c++ xcode objective-c objective-c++

我正在尝试将代码从AurioTouch项目移动到我的项目中.但我有很多错误:

Unknown type name 'class'; did you mean 'Class'?
Run Code Online (Sandbox Code Playgroud)

例如,在文件FFTBufferManager.h中:

#include <AudioToolbox/AudioToolbox.h>
#include <libkern/OSAtomic.h>

#include "SpectrumAnalysis.h"

class FFTBufferManager
{
public:
    FFTBufferManager(UInt32 inNumberFrames);
    ~FFTBufferManager();
Run Code Online (Sandbox Code Playgroud)

我试图将编译器更改为LLVM GCC 4.2,但它会产生很多其他错误:

Expected '=', ',', ';', 'asm' or '__attribute__' before 'FFTBufferManager'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Joe*_*Joe 8

要混合C++和Objective-C,您需要使用.mm扩展名.但是,如果您的类只是C++(并且只包含C/C++标头),那么您可以使用普通.cpp扩展.

.mm
除了Objective-C和C代码之外,具有此扩展名的源文件还可以包含C++代码.仅当您实际引用Objective-C代码中的C++类或功能时,才应使用此扩展.