Héritage des classes

Résolu
CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 - 24 févr. 2005 à 21:08
CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Derniè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

4 réponses

ensiame Messages postés 15 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 15 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.
3
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
25 févr. 2005 à 14:28
et mm mieux, si tu veux éviter de l'utiliser directement

virtual getCurrentCamera()=0;

dans le header

++
Magic Nono: l'informagicien!
3
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
25 févr. 2005 à 14:29
cf exemple concret dans une de mes public:

"interface commune de sortie"

Bonne prog

Magic Nono: l'informagicien!
0
CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 2
25 févr. 2005 à 17:50
Merci ça marche

CyberP,
Celui qui dit que toute question a une réponse
0
Rejoignez-nous