我想知道为什么会收到此错误:
对`vtable for BaseRenderer'的 undefined reference
我尝试四处搜寻,但似乎无法弄清楚。我试过摆脱虚函数,删除构造函数,等等。
我的BaseRenderer.h
class BaseRenderer : public Renderer
{
Q_OBJECT
public:
BaseRenderer();
BaseRenderer(QWidget *parent);
void paintGL();
virtual ~BaseRenderer();
public slots:
void loadDialog();
signals:
protected:
Mesh loadMesh(string fileName);
private:
OBJParser objParser;
Mesh baseTerrain;
};
我的BaseRenderer.cpp
BaseRenderer::BaseRenderer() <------ Error leads me here
{
}
BaseRenderer::BaseRenderer(QWidget *parent) : Renderer(parent)
{
}
BaseRenderer::~BaseRenderer()
{
//dtor
}
我将如何摆脱这个问题?我也听说可能是编译器...?
谢谢您的帮助 :)
最佳答案
由于Q_OBJECT在父类Renderer中,因此您不必也将其包括BaseRenderer。只是摆脱Q_OBJECT,它应该可以工作:)