Я пишу библиотеку для разбора выражений в древовидную структуру, и у меня есть абстрактный тип QCExpressionNode
в качестве базового класса. Это выглядит так:
#ifndef QCEXPRESSIONNODE_H
#define QCEXPRESSIONNODE_H
#include <QString>
class QCExpressionNode
{
public:
virtual ~QCExpressionNode() {}
virtual float evaluate(float* x) = 0;
virtual bool containsVariable() = 0;
virtual QString infixNotation() = 0;
};
Q_DECLARE_INTERFACE(QCExpressionNode, "org.nathanmoos.qcalc.libexprtree-qt.QCExpressionNode/0.1")
#endif // QCEXPRESSIONNODE_H
Когда я компилирую некоторые тесты (другой проект в QtCreator), которые работают на подклассах (QCConstantNode
, QCVariableNode
, QCBinaryOperatorNode
и т. Д.), Компоновщик выдает мне ошибку «неопределенная ссылка на vtable» для QCExpressionNode , Что я делаю не так?