C++ acces objet a l'exterieur de la classe

Fermé
sylvainx90 Messages postés 28 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 30 avril 2010 - 22 févr. 2010 à 15:20
sylvainx90 Messages postés 28 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 30 avril 2010 - 28 févr. 2010 à 13:20
Bonjour,

j'ai un jeu de puissance 4 a faire en C++ et pour l'instant j'ai un peu de mal.
J'ai des classes dont une classe partie ,joueur et plateau.
Dans la classe 'partie' je déclare un objet plateau PL et dans la classe joueur je veut accèder a des attributs de l'objet PL que j'ai déclaré dans la classe partie donc je fait un PL.getValeur ( getValeur étant une methode de la classe plateau) mais ca ne fonctionne pas il me dit 'error C2065: 'PL' : identificateur non déclaré'. Pouvez vous me dire comment faire pour que j'ai accès aux attributs de l'objet PL en dehors de la classe où j'ai déclaré l'objet
Voici un bout de code :

Dans la classe partie


plateau PL(8,8);
gagner=J1.jouercoup('X');

Dans la classe joueur

int joueur::jouercoup(char x){
int colonne,i;
cout<<"ou voulez vous jouer ? ";
cin>>colonne;
i=0;
PL.getValeur(i,colonne)
A voir également:

3 réponses

Salut,

En passant un pointeur de ton plateau en constructeur de ta classe Joueur.
Un pointeur, pour que tous tes joueurs aient le meme plateau ; )
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
22 févr. 2010 à 15:32
PL appartient à la classe partie, donc tu ne peux pas l'appeler en dehors d'un contexte (sauf au sein de la classe "partie"). Il faut préciser à quelle classe "partie" appartient PL.
La solution de francis est pas mal, mais à mon avis, il faut revoir ta façon d'arranger les classes entre elles.
Les classes amies pourraient aussi être une solution.
0
sylvainx90 Messages postés 28 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 30 avril 2010
28 févr. 2010 à 13:20
merci de votre aide,ca fonctionne maintenant
0