我正在编写一个用于将表达式解析为树结构的库,并且我有一个抽象类型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
,链接器给了我一个 QCExpressionNode 的“未定义的 vtable 引用”错误。我究竟做错了什么?