使用QObject进行多重继承

时间:2013-03-30 15:02:07

标签: c++ qt polymorphism multiple-inheritance 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();
};

1 个答案:

答案 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;
}