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 :

[Include] Un problème d'imbriquation?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut [Include] Un problème d'imbriquation?
    Bonjour,

    Après quelques mois d'abstention, je fais une nouvelle tentative en c++.

    Mais je bloque sur un probleme de include apparement?

    J'ai en fait 2 classes imbriquées dont voici le 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
    25
    26
    27
    28
     
    #ifndef MEMBREEQUIPAGE_H_
    #define MEMBREEQUIPAGE_H_
     
    #include "Equipage.h"
     
    class MembreEquipage
    {
    protected:
    	char _nom[50];
    	char _prenom[50];
    	Equipage* _equipage;
    	char _fonction[15];	
     
    public:
    	MembreEquipage();
    	virtual ~MembreEquipage();
     
    	void  setNom(char* nom);
    	char* getNom();
    	void  setDateNaissance(char* dateDeNaissance);
    	char* getDateNaissance();
    	void  setFonction(const char* fonction);
    	char* getFonction();
     
    };
     
    #endif /*MEMBREEQUIPAGE_H_*/
    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
    37
     
    #ifndef EQUIPAGE_H_
    #define EQUIPAGE_H_
     
    #include "MembreEquipage.h"
    //#include "Navire.h"
     
     
    class Equipage
    {
    protected:
    	//Navire* _navire;
    	MembreEquipage mbrEquipage[20];
     
    public:
    	static char* CAPITAINE;
    	static char* SECOND;
    	static char* OFFMECA;
    	static char* OFFRADIO;
    	static char* QUARTM;
    	static char* MATELOT;
    	static char* CUISINIER;	
     
    public:
    	Equipage();
    	virtual ~Equipage();
     
    	//void setNavire(Navire navire);
    	//Navire getNavire(void);
     
    	void ajouteMembre(MembreEquipage mbrEquipage);
    	void retireMembre(MembreEquipage mbrEquipage);
     
     
    };
     
    #endif /*EQUIPAGE_H_*/
    Le include de navire est volontairement placé en commentaire pour trouver l'erreur.

    Résulat:

    In file included from MembreEquipage.h:4,
    from MembreEquipage.cpp:1:
    Equipage.h:12: erreur: «MembreEquipage» does not name a type
    Equipage.h:30: erreur: «MembreEquipage» has not been declared
    Equipage.h:31: erreur: «MembreEquipage» has not been declared


    Quel est le problème?

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Voir la declaration anticipee:
    http://cpp.developpez.com/faq/cpp/?p...erence_croisee

    Un conseil pour bien debuter : utilise std::string au lieu des char*, tu eviteras beaucoup de problemes. (lis la FAQ!)

  3. #3
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    salut matelot, bienvenue à bord

    1ere remarque : ce que tu fait n'est pas une imbrication de classes. Une classe imbriquée est une classe définie à l'intérieure d'une autre.

    Ton pb c'est de la référence croisée, ta classe Equipage contient plusieurs MembreEquipage et ta classe MembreEquipage a un lien vers la classe Equipage. Revoie ta conception et essaye d'éviter cela.

    Si tu ne peux pas faire autrement, tu dois enlever le #include "Equipage.h" du fichier MembreEquipage.h et mettre a la place une déclaration anticipé de la classe Equipage (ce qui devrait suffir car tu n'utilise qu'un pointeur sur cette classe).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifndef MEMBREEQUIPAGE_H_
    #define MEMBREEQUIPAGE_H_
     
    //#include "Equipage.h"
    class Equipage;
     
    class MembreEquipage
    {
    protected:
        ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut
    Merci!

    Pile poils les infos qu'il me fallait.

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Clique sur le bouton Resolu alors

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

Discussions similaires

  1. [Include][Subview]Problème de passage de paramètres
    Par kiki-le-vrai dans le forum JSF
    Réponses: 1
    Dernier message: 18/06/2007, 14h23
  2. Problème requêtes imbriquées
    Par jean-paul lepetit dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 20/03/2007, 10h32
  3. Problème Requête Imbriquée
    Par PaulPersonne820 dans le forum Hibernate
    Réponses: 1
    Dernier message: 31/01/2007, 22h40
  4. Problème Requête imbriquée
    Par EddieN dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/10/2006, 07h52
  5. problème iterations imbriquées
    Par mitje dans le forum Struts 1
    Réponses: 3
    Dernier message: 03/10/2006, 12h25

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