问题描述
继承一个类,再继承自QObject并添加Q_OBJECT的宏之后,编译不过。
class A{
public:
A(){};
~A(){};
private:
int m_aval;
};
class DerivedObject : public A,public QObject
{
Q_OBJECT
public:
DerivedObject();
~DerivedObject();
private:
int m_dval;
};
错误信息:
错误 1 error C2039: “staticMetaObject”: 不是“A”的成员 c:\Users\chuan\documents\visual studio 2010\Projects\DerivedObject\DerivedObject\GeneratedFiles\Debug\moc_derivedobject.cpp 53 DerivedObject
错误 2 error C2039: “qt_metacast”: 不是“A”的成员 c:\Users\chuan\documents\visual studio 2010\Projects\DerivedObject\DerivedObject\GeneratedFiles\Debug\moc_derivedobject.cpp 73 DerivedObject
错误 3 error C2039: “qt_metacall”: 不是“A”的成员 c:\Users\chuan\documents\visual studio 2010\Projects\DerivedObject\DerivedObject\GeneratedFiles\Debug\moc_derivedobject.cpp 78 DerivedObject
问题分析
首先,我们尝试输出该类的内存布局,分析错误原因。</