类向量上的动态强制转换失败(c ++)

时间:2018-06-01 22:08:24

标签: c++ vector dynamic-cast

首先,我遇到问题的类的定义是:

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的操作数必须是指向完整类类型的指针”错误。可能是什么原因?如何避免这样的错误?

0 个答案:

没有答案