Probleme type et classe C++

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 ?
Configuration: Linux
Firefox 2.0.0.11

4 réponses

  1. Salut,

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

    a+
    -Qwerti.
    0
    1. 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
      1. 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
        1. 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