我想继承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();
};
答案 0 :(得分:2)
`Undefined reference to `vtable for...'`
通常是未实现的虚函数的标志。 确保已实现(定义)从基类继承的相应虚拟函数。
例如,由于B中的打印方法未实现,因此会出现相同的错误。
class A {
public:
virtual void print() = 0;
};
class B : public A{
public:
void print();
};
int main()
{
B b;
}