Probleme type et classe C++

Fermé
bolux - 14 déc. 2007 à 19:51
Qwerti Messages postés 166 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008 - 14 déc. 2007 à 21:28
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 ?

4 réponses

Qwerti Messages postés 166 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008 85
14 déc. 2007 à 20:01
Salut,

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

a+
-Qwerti.
0
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
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 dimanche 2 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008 85
14 déc. 2007 à 21:28
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