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 :

membre de type class définit dans un fichier include non reconnu


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut membre de type class définit dans un fichier include non reconnu
    Bonjour,

    j'ai les fichiers suivants: source1.cpp, source1.h, source2.cpp, source2.h

    lorsque je définit une variable de type maclasse qui elle est définie dans le fichier source2.h au niveau du fichier source1.h (dans une classe), elle n'est pas reconnu.

    pourtant j'ai définit source2.h dans source1.cpp. (#include source2.h)

    faut-il inclure aussi source2.h dans source1.h ? meme si source2.h est déclarée dans source1.cpp ?

    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Si le membre de type maclasse est une valeur, tu doit inclure le fichier d'en-tête source2.h dans source1.h. Il n'est alors plus nécessaire de l'inclure dans source1.cpp.

    Si le membre est une référence vers un objet de type maclasse, tu peux te contenter d'une déclaration anticipée.

    Note que le compilateur lit le code exactement de la même manière que toi : de la première ligne à la dernière. Et, tout comme quand tu lis un livre, tu ne sais pas ce qui se passe à la page 12 quand tu a lu jusqu'à la page 10, le compilateur ne sait pas ce qui se passe à la ligne 15 quand il essaye de lire la ligne 10. L'inclusion du fichier d'en-tête source2.h dans source1.cpp lui permet de connaitre maclasse quand il lit source1.cpp, mais cela ne lui permet pas de la connaitre quand il lit le contenu... de source1.h. C'est pour cela qu'il te parle d'un type non reconnu
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut
    Merci , en déclarant en anticipée cela a fonctionné.

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

Discussions similaires

  1. Definition d'une classe python dans plusieurs fichiers
    Par wfargo dans le forum Général Python
    Réponses: 3
    Dernier message: 05/12/2006, 23h03
  2. Connaître les classes définies dans un fichier
    Par Tournevyks dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2006, 16h21
  3. Réponses: 8
    Dernier message: 19/09/2006, 15h42
  4. Réponses: 2
    Dernier message: 12/04/2006, 20h48
  5. [JAR]Class-Path dans le fichier Manifest
    Par Kleb dans le forum Général Java
    Réponses: 5
    Dernier message: 08/01/2005, 08h51

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