Q_OBJECT in cpp file
-
Hi
I have a problem with the macro Q_OBJECT. My source code:
@
// myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H#include <QObject>
#include <QtCore>class MyClassPrivate;
class MyClass : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(MyClass)
public:
explicit MyClass(QObject *parent = 0);signals:
public slots:
private:
void* const d_ptr;
};#endif // MYCLASS_H
@
@
// myclass.cpp
#include "myclass.h"class MyClassPrivate: public QObject {
Q_OBJECT
public:
MyClassPrivate():QObject(NULL){}
signals:
public slots:
};MyClass::MyClass(QObject *parent) :
QObject(parent),
d_ptr(new MyClassPrivate())
{
}
@when compiling, I got error "undefined reference to `vtable for MyClassPrivate'". But if I comment the Q_OBJECT declaration inside MyClassPrivate then compilation successful. Could anyone tell me why? And what if I don't use Q_OBJECT in MyClassPrivate?
Thanks for help! -
Sry, I have the same problem and I don't get it how to include the moc file. Could you give me a short example how to do it? Would be nice.
Edit:
Okay nevermind...I just have to include "moc_myclass.cpp". First I tried modul1g.moc and failed. I was wondering why the compiler didn't find moc_myclass.cpp, so I didn't try this.