Я делаю игру, в игре есть список, в котором находится игрок, этот список относится к классу Player. У меня также есть класс, который является дочерним элементом игрока HumanPlayer. Я добавил игрока в список игроков. но когда я запускаю функцию рендеринга, она не выводится из humanplayer, которую она отображает у игрока. Функция рендеринга - это виртуальная функция, которая должна быть перезаписана, но это не так.Наследование C++ не работает
Вот где я определяю список:
std::list<Player> playerList;
здесь, где я добавить humanplayer к списку:
playerList.push_front(HumanPlayer(512,512,&entityList));
Вот где функция визуализации вызовов визуализации:
if(!playerList.empty()){
std::list<Player>::iterator iter;
for (iter = playerList.begin(); iter != playerList.end(); iter++){
iter -> render(canvas);
}
}
Вы «нарезаете» http://stackoverflow.com/questions/274626/what-is-the-slicing-problem-in-c, для полиморфизма требуются «указатели». –