Problème en C++ avec un constructeur de class

Fermé
Overwatch - 16 févr. 2008 à 16:36
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 17 févr. 2008 à 15:23
Bonjour, j'ai un problème avec un constructeur en langage C++

Je travaille sur une adaptation de jeux de rôle papier en programme console (une sorte d'exercice).
J'ai un fichier "feuille d'aventure.h" dans lequel j'ai créé la classe "FeuilleDAventure" contenant le constructeur "FeuilleDAventure()", j'initialise les valeurs de la classe dans un fichier "feuille d'aventure.cpp" en écrivant ca :

#include "feuille d'aventure.h"

FeuilleDAventure::FeuilleDAventure() : ...initialisation des variables...
{

}


Et la le debugger de mon IDE(Code::Blocks) me renvoie ça : aventure.cpp line 4 error: 'FeuilleDAventure' has not been declared

Je ne comprends pas d'où vient l'erreur vu que j'ai inclus "feuille d'aventure.h".
Pouvez vous m'aider ?

5 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
16 févr. 2008 à 20:24
Bonjour,

Et sans les espaces et l'apostrophe dans le nom de ton fichier ça donne quoi ? D'ailleurs, même si ce n'est pas ça cette fois ci, évite ;-)
(En toute logique il devrait ce plaindre si il peine à trouver le fichier .h mais bon...)

Sinon, c'est simplement que tu n'as pas de constructeur ayant ce prototype dans ton .h

M.
0
J'ai changé le nom de mon fichier en "feuille_d_aventure.h" et j'ai toujours le même problème, pourtant le prototype de mon constructeur dans le .h est bien le même, comme tu peux le voir dans la déclaration de la classe :

class FeuilleDAventure
{
public:

FeuilleDAventure();

private:

long m_habileteNaturelle;
long m_habileteDeCombat;
long m_endurance;
long m_enduranceMax;
long m_privilegesZero;
long m_bourse;

Arme m_ArmeEquipee;
Protection m_ProtectionEquipee;
Possessions m_Possessions;
};
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
17 févr. 2008 à 11:18
On va faire des choses vilaines !

Que se passe-t-il si tu remplaces ton #include par un copier-collé de tout ton .h ?

Si ça passe c'est qu'il y a un problème avec le #include. (ou avec le .h)

Tu utilises quoi comme compilateur ?
C'est bien la première erreur qu'il te donne ?

M.
0
Oui effectivement c'est très vilain comme manip :-P

J'ai essayé et effectivement j'ai plus de problème de déclaration de classe, par contre j'ai tout plein de problèmes de déclarations d'objets dans mon prototype. ^^

J'utilise Code::Blocks comme compilateur et oui c'est la première erreur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
17 févr. 2008 à 15:23
C'est très étrange tout ça...

On dirait que le #include est inopérant... Je suppose que les nouveaux objets qu'il ne trouve pas sont ceux eux aussi inclus par ton premier .h (Arme, Protection et Possessions)

Je suis tombé sur ce post du forum de code::blocks.

Pour remettre les choses à plat tu devrais essayer de trouver les versions:
- De l'IDE (Code::Blocks)
- Du Compilateur (Probablement gcc)
- Du debuggeur (Et donc probablement gdb)
Et de remettre à jour si tu n'as pas les dernières car le problème semble bel et bien logiciel.

M.
0