从指针列表中调用函数?

时间:2017-10-09 11:30:14

标签: c++ c++11 pointers sdl

我有一个像这样声明的指针列表: std::list < GameObj* > gameObjList;

该列表应包含指向我游戏中当前所有对象的指针。

然而,在我的主循环中,我有这个:

///Game logic
for (GameObj* o : gameObjList) {
    (*o).step();
}

通过在战略位置添加std :: cout函数,我意识到循环每步执行一次,这是可以的,因为我只创建了一个这样的GameObj并添加到列表中。然而,显然没有达到step()函数中的std :: cout。

这是PlayerObj的step()函数:

void step() {
    std::cout << " a ";
    int _x = 0, _y = 0;
    _x += keys[SDL_SCANCODE_D];
    _x -= keys[SDL_SCANCODE_A];
    _y += keys[SDL_SCANCODE_S];
    _y -= keys[SDL_SCANCODE_W];
    if (_x == 0 && _y == 0)
        setSpeed(0);
    else setSpeed(1);
    setDir(atan2(_y, _x));
    GameObj::step();
}

最后一个语句GameObj :: step()调用PlayerObj的父类GameObj的步进函数。

0 个答案:

没有答案