[英]'undefined reference to vtable' for abstract class (Qt)
我正在編寫一個用於將表達式解析為樹形結構的庫,並且我有一個抽象類型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
當我編譯對子類( QCConstantNode
, QCVariableNode
, QCBinaryOperatorNode
等等)工作的一些測試(QtCreator中的另一個項目)時,鏈接器為QCExpressionNode提供了“對vtable的未定義引用”錯誤。 我究竟做錯了什么?
#include <QtPlugin>
,那么文件應該可以編譯。 Q_DECLARE_INTERFACE
在QtPlugin
聲明。
順便說一句:單獨編譯頭文件是很不常見的,並且在頭文件之外包含防護也很不尋常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.