c++ - QObject 的多重继承

标签 c++ qt polymorphism multiple-inheritance qobject

我想继承QObject和另外一个类,报错: `EduGraph 的 vtable' 的 undefined reference 我已经阅读了一些关于它的线程并修复了类定义中继承类的顺序,但它没有解决问题。

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 中的 print 方法没有实现。

class A {
public:
    virtual void print() = 0;
};

class B : public A{
public:
    void print();
};

int main()
{
    B b;
}

关于c++ - QObject 的多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719940/

相关文章:

c++ - 交叉赋值运算符?

c++ - vector push_back 随机发生

c++ - Qt keyPressEvent 处理程序仅在按下 ctrl、alt 或 shift 键时使用react

java - 多态地推导派生类型

swift - 在swift中将子类对象声明为父类(super class)但对象仍然表现为子类

java - 重写有异常编译器错误的方法

c++ - 在末尾移动容器的项目(双端队列)

c++ - 可变参数模板和类型安全

c++ - Boost::msm 如何使用非默认构造函数初始化 state_machine_def 和 msm::front::state

c++ - Qt C++ 中 header 变量的 undefined reference