Probleme type et classe C++

bolux -  
Qwerti Messages postés 166 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voilà j'ai déclaré une classe Jeu

Dans mon .h >>

class Jeu

{

private://Principe de l'encapsulation : Tous les attributs d'une classe doivent être privés



char **grille; // grille pour le puissance4,



bool max; // est-ce un noeud max ou min

int profondeur_max; // pour la gestion de la profondeur

int nb_coups; // le nombre de coups deja joues



int choix; //Choix du type de la partie Humain contre humain : Humain contre l ordinateur



public:



//Constructeurs

Jeu();



Jeu(bool max,int profondeur_max,int nb_coups,int choix);



//Destructeurs

~Jeu();

val_joueur joueur;



//Accesseurs



bool get_max();

int get_profondeur_max();

int get_nb_coups();

int get_choix();



//Mutateurs



void set_max(bool maximum);

void set_profondeur_max(int pr_max);

[...]

};



#endif

Dans mon .cpp



using namespace std;





//CONSTRUCTEURS Initialise tous les attributs hors objets

Jeu::Jeu () : max(false) , profondeur_max(4), nb_coups(0), choix(0)

{

char (*grille)[COLONNE] = new char[LIGNE][COLONNE];

for (int l = 0; l < LIGNE ; l++) {

for (int c = 0; c < COLONNE; c++) {

grille[LIGNE][COLONNE] = ' ';

}

}

}



Jeu::Jeu(bool max,int profondeur_max,int nb_coups,int choix) : max(false) , profondeur_max(4), nb_coups(0), choix(0)

{



}



//DESTRUCTEURS



Jeu::~Jeu()

{

delete[] grille;

}

[...]

Dans un autre fichier .h

Je fais ceci >>

int minimax(Jeu);

Jeu meilleur_coup(Jeu);

Et voilà les erreurs que j'obtiens par g++ >>

minimax.h:15: error: `Jeu' was not declared in this scope
minimax.h:16: error: `Jeu' was not declared in this scope
minimax.h:16: error: 'Jeu' is used as a type, but is not defined as a type.


Je ne comprends pas pourquoi :/ Est ce qu'une personne bienveillante peut m'aiguiller ?
A voir également:

4 réponses

Qwerti Messages postés 166 Date d'inscription   Statut Membre Dernière intervention   85
 
Salut,

As-tu un #include qui inclut ton premier fichier .h ?

a+
-Qwerti.
0
bolux
 
Tout à fait oui :/

#include "Jeu.h"





Dans tous mes fichiers, je ne peux instancier la classe Jeu

un simple Jeu jeu;

me retourne la même erreur à savoir


error: 'Jeu' is used as a type, but is not defined as a type.
0
bolux
 
Et étrangement, je pense que cela peut aiguiller, lorsque je déclare la même instanciation dans les fichiers .cpp là pas d'erreurs, c'est seulement losrque ej fais cela dans les headers files.

Si quelqu'un a une idée ?
0
Qwerti Messages postés 166 Date d'inscription   Statut Membre Dernière intervention   85
 
Re bolux,

Si tu fais ca :


Essaie un truc si tu veux y voir plus clair :

Crée un fichier jeu.h qui contient cette superbe definition de la classe Jeu :


class Jeu { };


et c'est tout, et crée un autre fichier :


#include "Jeu.h"

Jeu jeu;

int main() {
return 0;
}




Que se passe-t-il ?

Si ca marche, c'est que le pb est ailleurs...

a+
-Qwerti.
0