[英]Multiple inheritance with QObject
我想继承QObject和另一个类,并得到一个错误:vtable for EduGraph的未定义引用我已经阅读了一些有关它的线程,并在类定义中修复了继承类的顺序,但尚未解决。问题。
class EduGraph : public QObject, public Graph<Vertex<ENode, EEdge>*> {
private:
std::list<Vertex<ENode, EEdge>*>::iterator firstSel;
std::list<Vertex<ENode, EEdge>*>::iterator secSel;
public:
Q_OBJECT
EduGraph() : firstSel(0), secSel(0) {}
~EduGraph();
void NewNode(const QPoint& p);
void RemoveNode();
void Associate();
void Dissociate();
signals:
void VertexSelected();
void VertexDeSelected();
};
`Undefined reference to `vtable for...'`
通常是虚拟功能未实现的标志。 确保已实现(定义) 从基类继承的相应虚函数 。
例如,这将给您同样的错误,因为未实现B中的打印方法。
class A {
public:
virtual void print() = 0;
};
class B : public A{
public:
void print();
};
int main()
{
B b;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.