這裏深夜在這裏,我瘋了試圖解決鏈接器錯誤。繼承接口時未解決的符號
如果我有以下的抽象接口:
class IArpPacketBuilder
{
public:
IArpPacketBuilder(const DslPortId& aPortId);
virtual ~IArpPacketBuilder();
// Other abstract (pure virtual methods) here...
};
和我實例是這樣的:連接時
class DummyArpPacketBuilder
: public IArpPacketBuilder
{
public:
DummyArpPacketBuilder(const DslPortId& aPortId)
: IArpPacketBuilder(aPortId) {}
~DummyArpPacketBuilder() {}
};
爲什麼我收到以下錯誤?
Unresolved symbol references:
IArpPacketBuilder::IArpPacketBuilder(DslPortId const&):
ppc603_vxworks/_arpPacketQueue.o
IArpPacketBuilder::~IArpPacketBuilder():
ppc603_vxworks/_arpPacketQueue.o
typeinfo for IArpPacketBuilder:
ppc603_vxworks/_arpPacketQueue.o
*** Error code 1
IArpPacketBuilder
是一個抽象的接口,所以只要我限定在混凝土中的構造和破壞力(派生)接口,我要細,沒有?那好像不是。
我已經能夠在沒有任何問題的情況下從另一個庫中的此接口繼承,所以不認爲這會是一個問題。我需要在抽象界面中定義它們嗎? – LeopardSkinPillBoxHat 2010-05-21 09:29:39
@豹,有趣。我認爲它不會那樣工作 - 如果你明確地聲明瞭一個構造函數/析構函數,編譯器將不會自動爲你生成它。請注意,C++沒有_abstract interface_的概念 - 你的類是一個普通的類,有一些純粹的虛擬方法,這使得它不可能直接實例化。 – 2010-05-21 09:34:31
謝謝,我通過定義ctor和dtor的機構來工作,但我還是不明白爲什麼它在另一個庫中工作時,我沒有定義ctor和dtor。 – LeopardSkinPillBoxHat 2010-05-21 09:46:01