繁体   English   中英

QObject的多重继承

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM