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