Probleme type et classe C++
bolux
-
Qwerti Messages postés 166 Date d'inscription Statut Membre Dernière intervention -
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 ?
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:
- Probleme type et classe C++
- Clear type - Guide
- Type de ram - Guide
- Comment changer le type de fichier - Guide
- Chat type coco - Accueil - Réseaux sociaux
- Click-n-type - Télécharger - Vie quotidienne
4 réponses
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.
#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.
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 ?
Si quelqu'un a une idée ?
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.
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.