Множественное наследование с 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

Решение

`Undefined reference to `vtable for...'`

обычно является признаком невыполненной виртуальной функции.
Убедитесь, что вы реализовали (определили) соответствующий виртуальные функции, которые вы унаследовали от базовых классов.

Например, это даст вам ту же ошибку, потому что метод печати в B не реализован.

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

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

int main()
{
B b;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]