IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

A inclus B qui inclus A, dépendance circulaire


Sujet :

C++

  1. #1
    Débutant
    Homme Profil pro
    aucun
    Inscrit en
    Avril 2012
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2012
    Messages : 152
    Points : 28
    Points
    28
    Par défaut A inclus B qui inclus A, dépendance circulaire
    Bonjour,

    je suis un debutant en c++ et je suis entraine de faire un code pour m'entraîner. Il y a une erreur que je n'arrive pas à comprendre :

    Il disent qu'a la ligne 17, il y a une faute. Mais, jai faite copier/coller de mon autre code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #ifndef MONSTRE_H
    #define MONSTRE_H
    #include "raider.h"
     
    class Monstre
    {
    private:
    	std::string nom;
    	int hp;
    	int level;
    	int force;
    	int rapidite;
    	int defense;
    	bool estVivant;
     
    public:
    	void attaquer(Raider &ennemi);
    	int getDefense() const;
    	void seFaireAttaquer(int x);
    	int getHp() const;
    	int getLevel() const;
    };
     
    #endif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #ifndef RAIDER_H
    #define RAIDER_H
    #include "Monstre.h"
     
    class Raider
    {
    private:
    	std::string nom;
    	int hp;
    	int sp;
    	int xp;
    	int level;
    	double argent;
    	std::string classe;
    	int force;
    	int rapidite;
    	int defense;
    	std::string armure;
    	std::string Arme;
    	bool estVivant;
    	int cadence;
    	bool quelArme;
    	int boost;
     
    public:
    	Raider();
    	void seSoigner();
    	void seRecuperer();
    	void attaquer(Monstre &cible);
    	void changerLevel();
    	void attaqueSpecial(Monstre &cible);
    	void changerArme();
    	int getForce() const;
    	void perdreSp(int x);
    };
    #endif

  2. #2
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616
    Par défaut
    T'as une dépendance circulaire là.
    Monstre dépend de Raider et Raider dépend de Monstre.

    Est-ce vraiment ce que tu voulais faire?

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Hello

    Dans la mesure du possible, lorsque dans un header, tu n'utilises que des pointeurs ou des références vers une classe qui n'est pas déclarée dans ce header, il convient d'utiliser une forward déclaration plutôt qu'un include. C'est on cas ici ! En clair:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include "Montre.h" // est à remplace par
    class Monstre; // <- ceci
     
    #include "raider.h" // est à remplacer par
    class Raider; // ceci
    Voir l'entrée de la FAQ sur le sujet.. Autre remarque: le nom de ton include raider.h n'a pas de majuscule alors que Monstre.h en a une. Fait attention à garder une cohérence dans tes nommages.
    Find me on github

  4. #4
    Débutant
    Homme Profil pro
    aucun
    Inscrit en
    Avril 2012
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2012
    Messages : 152
    Points : 28
    Points
    28
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cherche hébergeur gratuit qui inclus PDO
    Par mohcinz dans le forum Gratuit
    Réponses: 1
    Dernier message: 13/06/2010, 22h04
  2. [MCD] Dépendance circulaire
    Par javass dans le forum Schéma
    Réponses: 14
    Dernier message: 24/08/2009, 00h38
  3. [EJB3] [JBoss] Injection de dépendance circulaire ?
    Par Claythest dans le forum Java EE
    Réponses: 6
    Dernier message: 04/08/2009, 08h11
  4. Problèeme de dépendances circulaires entre EJBs et JBoss
    Par developpeur2008 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 08/06/2008, 20h03
  5. inclus ou pas inclus dans delphi 2005
    Par lopezpacheco dans le forum Débuter
    Réponses: 4
    Dernier message: 11/02/2005, 00h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo