Je fais un jeu, dans le jeu a une liste qui contient le joueur, cette liste traite avec le joueur de classe. J'ai aussi une classe le est un enfant du joueur appelé HumanPlayer. J'ai ajouté un joueur humain à la liste des joueurs. mais quand je cours une fonction de rendu il ne rend pas de joueur humain il rend du joueur. La fonction de rendu est une fonction virtuelle, qui devrait être remplacée mais pas.Héritage C++ ne fonctionne pas
Voici où je définis la liste:
std::list<Player> playerList;
ici est où ajouter une humanplayer à la liste:
playerList.push_front(HumanPlayer(512,512,&entityList));
Voici où la fonction Render appelle les rendre:
if(!playerList.empty()){
std::list<Player>::iterator iter;
for (iter = playerList.begin(); iter != playerList.end(); iter++){
iter -> render(canvas);
}
}
Vous êtes 'slicing' http://stackoverflow.com/questions/274626/what-is-the-slicing-problem-in-c, le polymorphisme nécessite' pointeurs'. –