RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | programmation
C++ problème de pointeur sur classe
Laaris, le mar. 11 déc. 2007 à 11:29:39
Bonjour,

Je dois programmer un puissance 4 en C++, avec deux mode de jeu: deux joueurs ou un joueur contre l'ordinateur.

J'ai donc une classe joueur avec deux attributs nom et symbole, dont héritent deux sous classes: humain et cpu.

Au début de mon programme, après avoir demandé à l'utilisateur quel type de partie il veut faire, je crée mes instances en fonction de sa réponse:

joueur* joueur_courant;
joueur* adversaire;
joueur* temp

humain joueur1 (nom,symbole);
joueur_courant=&joueur1;

if (typepartie==1) { // si c'est une partie solo
cpu ordinateur("l'ordinateur",symbole);
adversaire=&ordinateur;
// quand je teste adversaire->nom ici, il me retourne le nom que je lui ai donné
}
else {
humain joueur2(nom,symbole);
adversaire=&joueur2;
// quand je teste adversaire->nom ici, il me retourne "l'ordinateur"
}

Mais quand je teste adversaire->nom après être sorti du if, il ne me retourne rien.
Par contre, si je teste adversaire->symbole, ça fonctionne partout. (???)

Ensuite quand je change de joueur, je fais:

temp=joueur_courant;
joueur_courant=adversaire;
adversaire=temp;

Et bien sûr ça ne fonctionne pas vu que visiblement le pointeur adversaire a perdu l'adresse qu'il contenait en sortant du if.

Alors deux choses m'intriguent:

- adversaire perd-il son contenu en sortant du if?
- si ce n'est pas le cas, pourquoi ne renvoie-t-il pas adversaire->nom ?
- si c'est le cas, pourquoi renvoie-t-il correctement adversaire->symbole? Configuration: Linux
Firefox 1.5.0.13


Char Snipeur
déc. 07
Suivant
REPONSES
Char Snipeur
déc. 07
Laaris
déc. 07
Version Web
Réalisé par RedShift
no save