以下代码在一个 C++ 项目中编译良好RenderingEngine.cpp
:
IRenderingEngine* CreateRenderer1()
{
return new RenderingEngine1();
}
但是如果我在 Xcode 4.3.2 中开始一个新项目,它会给出错误:
分配抽象类类型“RenderingEngine1”的对象
定义在IRenderingEngine.hpp
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() {}
};
如何解决这个问题?(这是iPhone 3D Programming在其项目 1中的一部分)。
更新:在RenderingEngine.cpp
:
public:
RenderingEngine1();
void Initialize(int width, int height);
void Render() const;
void UpdateAnimation(float timeStep);
void onRotate(DeviceOrientation newOrientation);
private:
GLuint m_framebuffer;
GLuint m_renderbuffer;
};
并且这5个功能都已定义。(最后两个是虚拟的——现在都是空的)