Probleme avec des classes

Signaler
Messages postés
71
Date d'inscription
jeudi 17 janvier 2002
Statut
Membre
Dernière intervention
12 mai 2004
-
D1m3x
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
-
salut a tous
j'ai un probleme dans un projet qui consiste a faire un tictactoe avec ia qui apprend.

Le probleme est le suivant : sachant que je compile avec vc++ 6.0 , dans le private de la class apprenti j'instancie une classe connaissance mais le grand con-pilateur me dit ke la classe n'est pas définie et donc erreur!
aidez moi svp je suis desespéré, g tout essayé, en vain.
je dois rendre mon projet vendredi!

voici les fichiers .h :

/////////////// connaissance.h ///////////////////////
#ifndef CONNAISSANCE_H
#define CONNAISSANCE_H

#include "partie.h"

struct coup{
int posx;
int posy;
int note;
bool gagnant;
};

struct position{
int * pgrille;
coup * pc;
};

struct rang{
position * lpos;
int nbpos;
};

class Connaissance{
public :

Connaissance(){
for(int i=0 ; i<9 ; i++){
Trang[i].lpos=NULL;
Trang[i].nbpos=0;
}
}

coup * &nouveau(int * g, int r, class Partie &p);

private :
rang Trang[9];
};

#endif

/////////////// apprenti.h ///////////////////////
#include "partie.h"

class Apprenti{
public :
Apprenti(){
for(int i=0 ; i<MAXNOTES ; i++)
this->notes[i] = 0;
}

void apprentissage(Apprenti adv);
void partie();
void joueuncoup(class Partie &p);

private :

class Connaissance conn;
enum {MAXNOTES=5};
int * notes[MAXNOTES];

// permet de mettre à jour les notes des coups joués //
void MAJdonnees(const int ki); // int = qui gagne //
// permet à l'humain de jouer
void DemandeJoueCoup(Partie& p);
};

#endif

/////////////// partie.h ///////////////////////
#ifndef PARTIE_H
#define PARTIE_H

#include
using namespace std;
#include "apprenti.h"

class Partie{

public :
Partie(int num=0);
bool joue(int posx, int posy);
int gagne();
friend class Apprenti;

int getGrille(int x, int y){
return (grille[x][y]);
}

private :
bool appr;
enum {TAILLE=3};
int grille[TAILLE][TAILLE];
int r;
int n;
};

ostream& operator<<(ostream&, Partie&);

#endif

//////////////////////////////////////

je suis preneur à tout!

khalilo

4 réponses

Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
Il semble qu'il manque au moins #include "connaissance.h"
dans le partie.h

sinon on ne mets JAMAIS using namespace std dans un .h

Ma participation à la saturation du net:
http://hylvenir.free.fr
Messages postés
71
Date d'inscription
jeudi 17 janvier 2002
Statut
Membre
Dernière intervention
12 mai 2004

ou ca le #include?

khalilo
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
/////////////// apprenti.h ///////////////////////
#include "partie.h"

#include "connaissance.h"

class Apprenti{



Ma participation à la saturation du net:
http://hylvenir.free.fr
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1
en effet le #include manque

mais tu n'a pa mis d'anti multi-inclusion (ou cmt ke sa sapel :p) alors je te conseille encore de les rajouter:

#ifndef APPRENTI_H
#define APPRENTI_H
#include "connaissance.h"
#include "partie.h"

...

#endif

ciao ;)

[DmX]