首先,我遇到问题的类的定义是:
class Game
{
public:
Game();
Game(int diff, int pChoice);
~Game();
vector<vector<Entity>> entities;
cMap map;
int difficulty;
};
现在,实际抛出错误的代码:
game = Game(diff, pChoice);
Player* tmp=dynamic_cast<Player*>(game.entities[1][0]);
基本上,玩家是实体的后代。它在Game(diff,pChoice)中正确构造,我想引用其中的一些字段。但是,在尝试这样做时,会抛出“指针dynamic_cast的操作数必须是指向完整类类型的指针”错误。可能是什么原因?如何避免这样的错误?