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中的print方法没有实现。
class A {
public:
virtual void print() = 0;
};
class B : public A{
public:
void print();
};
int main()
{
B b;
}
相关文章:
- 关于C++中具有多重继承"this"指针的说明
- C++中模板化异常类的多重继承
- 虚拟继承中是否存在多重继承?
- 如何在 c++ 多重继承中调用父非虚函数?
- 多重继承相同的方法名,没有歧义
- 使用enable_if解决多重继承歧义
- 多重继承导致虚假的模糊虚拟函数过载
- 多重继承和访问不明确的元素
- C++ 多重继承:使用基类 A 的实现实现基类 B 的抽象方法
- 多重继承中的派生类的行为类似于聚合
- 为什么我的 Hippomock 期望在使用多重继承时失败
- 模板类型推导的QObject多重继承的复杂性
- 具有qobject基的多重继承
- 为什么在多重继承的情况下,QObject需要成为第一个
- QObject的多重继承
- QObject多重继承和运算符新增
- 如果QObject是从direct派生的,那么使用“虚拟”多重继承是否安全?
- QThread和QWidget的多重继承(QObject的多重继承)
- QObject的多重继承
- 通过QObject子类最接近多重继承的解决方案