簡體   English   中英

抽象類(Qt)的“對vtable的未定義引用”

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

當我編譯對子類( QCConstantNodeQCVariableNodeQCBinaryOperatorNode等等)工作的一些測試(QtCreator中的另一個項目)時,鏈接器為QCExpressionNode提供了“對vtable的未定義引用”錯誤。 我究竟做錯了什么?

#include <QtPlugin> ,那么文件應該可以編譯。 Q_DECLARE_INTERFACEQtPlugin聲明。

順便說一句:單獨編譯頭文件是很不常見的,並且在頭文件之外包含防護也很不尋常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM