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