C++ deux classes, un pointeur

Fermé
Laaris - 7 déc. 2007 à 10:39
 Laaris - 7 déc. 2007 à 11:02
Bonjour,

Je dois programmer un puissance 4 en C++, avec un mode joueur contre ordinateur et un mode deux joueurs.

J'ai donc une classe joueur dont héritent deux sous-classes: humain et cpu.

Je veux pointer alternativement sur chacune des sous-classes avec le même pointeur, pour changer de joueur. J'ai donc pensé à utiliser un pointeur de type joueur*.

Mais j'ai un petit problème, chacune de mes sous-classes possède une méthode appelée tourdejeu, qui porte le même nom, mais n'est pas la même dans les deux sous-classes (c'est pour ça que je ne la met pas dans joueur).

Et donc, quand j'utilise un pointeur joueur*,pour appeler la fonction tourdejeu d'une de mes sous-classes,

exemple

humain joueurhumain1(name); //création d'une instance de la classe humain (qui hérite de la classe joueur)
joueur* joueur_courant; //création d'un pointeur sur le type class joueur
joueur_courant=&joueurhumain1; //affectation de l'adresse de joueurhumain1au pointeur
joueur_courant->tourdejeu(); // appel de la fonction tourdejeu() de l'instance joueurhumain1

Le compilateur me dit: «class joueur» has no member named «tourdejeu».

Comment puis-je faire?

2 réponses

Bonjour

Tu dois définir une fonction virtual void tourdejeu() dans ta classe joueur.
Elle peut par exemple afficher erreur : appel direct à joueur::tourdejeu
car normalement, la fonction de joueur ne doit pas être appelée elle-même
0
Merci beaucoup

ça a l'air de marcher!
0