Héritage des classes [Résolu]

Signaler
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
-
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
-
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

Messages postés
15
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2005

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.
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
et mm mieux, si tu veux éviter de l'utiliser directement

virtual getCurrentCamera()=0;

dans le header

++
Magic Nono: l'informagicien!
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
cf exemple concret dans une de mes public:

"interface commune de sortie"

Bonne prog

Magic Nono: l'informagicien!
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
2
Merci ça marche

CyberP,
Celui qui dit que toute question a une réponse