0
「虛函數表從參考點」以我爲瓷磚類的頭,我與在執行沒有定義所定義的純虛方法瓦(地形和演員)都與實施方式覆蓋setVals方法:分別2D陣列>錯誤
void Terrain::setVals(int ID){
switch(ID){
case 1 : GFX_ = '.'; name_ = "Grass"; desc_ = "Some grass"; break;
default: GFX_ = '?'; name_ = "Error"; desc_ = "Error"; Tile::isPassable_ = false; break;
}
}
和
void Tile::setVals(int ID){
switch(ID){
case 1 : GFX_ = '?'; name_ = "Nothing"; desc_ = "You shouldn't be seeing this"; break;
case 0 : GFX_ = '@'; name_ = "Player"; desc_ = "The Player"; break;
default: GFX_ = '?'; name_ = "Error"; desc_ = "Error"; Tile::isPassable_ = false; break;
}
}
。每個子類的一個2D陣列被初始化在地圖類:
Terrain terrain_[HEIGHT][WIDTH];
Actor actors_[HEIGHT][WIDTH];
(其中高度和寬度是恆定的整數)。但是當程序運行時,程序返回一個運行時錯誤,讀取「'Actor'的vtable,引用自:」。我在如何初始化這些方法或對象時犯了錯誤嗎?
派生類中我很抱歉。我的問題是,我已經在Actor實現文件中寫了void Tile :: setVals(int ID){...而不是void Actor :: setVals(int ID){...)。非常感謝你,我爲我的愚蠢道歉。 – Paradoxian
@ user1207515不用擔心,我們都會犯錯,特別是在星期五:) – CoryKramer