CyberP
Messages postés283Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 4 juillet 2007
-
24 févr. 2005 à 21:08
CyberP
Messages postés283Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 4 juillet 2007
-
25 févr. 2005 à 17:50
J'ai un petit problème et je n'ai pas envie de relire tout le chapitre sur l'héritage des classes.
J'ai une classe Scene et une classe GameScene dérivée de Scene
Dans Scene j'ai mis une fonction
getCurrentCamera() { return 0; }
et dans GameScene j'ai redéfinis cette fonction (en faisant ce que son nom indique) :
getCurrentCamera() { return currentCam; }
Maintenant si je créé une instance de GameScene :
GameScene* game = new GameScene;
et que je le passe à une fonction
function moveCamera(Scene* scene) {
scene->getCurrentCamera()->moveTo(0, 0, 0);
}
moveCamera(game);
Le problème est que, dans la fonction, getCurrentCamera() renvoie 0 puisque ici il prend la
fonction de la classe Scene, mais je voudrais qu'il utilise la fonction
de GameScene. Le problème est que cette fonction doit pouvoir recevoir
aussi bien Scene que GameScene que MainMenuScene et tous les "enfants"
de la classe Scene
CyberP,
Celui qui dit que toute question a une réponse
ensiame
Messages postés15Date d'inscriptionmercredi 10 mars 2004StatutMembreDernière intervention15 décembre 2005 24 févr. 2005 à 22:22
Il te suffit de rajouter le mot-clé virtual devant ton prototype de fonction, afin de spécifier que la méthode sera potentiellement redéfine dans une classe dérivée.