我試圖做多重繼承在C++:繼承和地圖C++
class Element{
public:
Element(): common_variable(0) {}
int common_variable;
};
class Number:public Element, public Setupable{
public:
Number() {}
vector<Digit> digit_vector;
};
class MultiLed:public Element, public Setupable{
public:
MultiLed() {}
vector<Led> led_vector;
};
對象要素是從來沒有實例化,但我用它來避免MULTILED和數字代碼重複。
有一個地圖,其中包括一個數:map<string,Number> mNumbers
,我想它在第一次使用創建:
mNumbers["blabla"].digit_vector.push_back(digit);
但是,這是行不通的。對Element,Setupable和Number的構造函數的調用已正確完成。但程序停止在「push_back」呼籲說:
undefined symbol: _ZN14AcElementD2Ev
有人可以幫我這個嗎?
「Setupable」的定義也可能有幫助... – janr
您是否使用GCC進行編譯,並且確切的符號是?它看起來差不多,但不完全像GCC所稱的名爲'AcElement'類的析構函數。你有一個類似這樣的名字的類,你在那個類中聲明瞭一個析構函數嗎? –
@Jav元素中是否有靜態成員D2Ev? – billz