我的類看起來像一個結構:呼叫多態函數從指針的矢量到基類
1
/\
2 3
||| ||
4 5 6 7 8
和保持指針1 1的矢量具有三個純虛函數,所有這些都是重寫通過8.
載體是通過一類控制和兩個違規功能在4 2點3然後特定的人返回默認值:
class Vector
{
public:
Vector();
void vectorAdd(Food* food)
{
mList.push_back(food);
}
//The two offending functions. The functions they point to are pure
//virtual in the Food class and overridden in the derived classes.
string getDescription(size_t index)
{
return mList[index]->getDescription();
}
double getPrice(size_t index)
{
return mList[index]->getPrice();
}
private:
vector<Food*> mList;
};
我的廣告叮叮由INT主要載體:
list.vectorAdd(&Spaghetti);
代碼編譯所有,但每當我打電話矢量:: getDescription(指數)或Vector ::用getPrice(指數)我得到一個調試錯誤,沒有信息來什麼地方出了錯。
不應該'getDescription'是'getDescription()',並同上,用於'getPrice' ? – cdhowie
我保證你的代碼不會*編譯,與你的斷言相反。 –
它編譯,我忘了把這些括號。 –