为什么在尝试编译此代码时会出现错误"error:unknown type name'virtual'"?

Dan*_*imm 11 xcode opengl-es objective-c ios

码:

struct IRenderingEngine {
    virtual void Initialize(int width, int height) = 0;
    virtual void Render() const = 0;
    virtual void UpdateAnimation(float timeStep) = 0;
    virtual void OnRotate(DeviceOrientation newOrientation) = 0;
    virtual ~IRenderingEngine() {}
};
Run Code Online (Sandbox Code Playgroud)

从一本书中学习用于3d iphone编程的opengles,它使用了这个示例代码,但本书的目标是xcode 3.x.

不知何故,我觉得它与xcode 4的东西....

编辑:

下面是实际的错误:

/ Users/Dan/Documents/opengles/Hello Arrow/Hello Arrow/IRenderingEngine.hpp:27:2:错误:未知类型名称'virtual'[1]

合法的是,无法编译所需的一切,绝对没有其他文件.(是的,我尝试使用字面上的main.m和这个hpp文件进行编译)

它将hpp文件识别为cpp头文件,但如果我尝试将其添加到编译文件中,则表示"没有规则处理文件'$(PROJECT_DIR)/ Hello Arrow/IRenderingEngine.hpp'类型为sourcecode.cpp .h for architecture i386"所以我真的不知道发生了什么

请注意,我使用main.m编译意味着我编译了另一个基于Cocoa/Foundation的应用程序

我尝试编译一个c ++应用程序,一切都很好....类似编译与main.mm测试文件也工作正常

继续实际的项目,让我知道我真的很疯狂:

[删除考虑我丢失了文件]

小智 22

请将main.m重命名为main.mm. 这对我有用.

  • 我不得不用.mm扩展名重命名main.m和AppDelegate.m. (5认同)