我想知道为什么会收到此错误:
对`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,它应该可以工作:)

09-10 01:32