C ++ - Undefined reference to `vtable

I was wondering why I get this error: undefined reference to `vtable for BaseRenderer '

I tried searching, but didn't seem to understand this. I tried to get rid of the virtual function by deleting the constructor, etc.

My 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;

};

My BaseRenderer.cpp

BaseRenderer::BaseRenderer()              <------ Error leads me here
{
}

BaseRenderer::BaseRenderer(QWidget *parent) : Renderer(parent)
{

}

BaseRenderer::~BaseRenderer()
{
    //dtor
}

How can I get rid of this problem? I also heard that it could be a compiler ...? Thanks for the help:)

+5
source share
5 answers

Since Q_OBJECT is in the parent class, Renderer, you also do not need to include it in BaseRenderer. Just get rid of Q_OBJECT and it should work :)

+9
source

. " , " " ? ++ FAQ Lite.

+2

, , BaseRenderer, baseRenderer.cpp, , .

+1

, , . , HEADERS .pro, qmake.

+1

, , : () Q_OBJECT ?

Try repeating qmake, for example paxdiablo and Tobias.

+1
source

All Articles