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 :

Objet non reconnu


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut Objet non reconnu
    Bonjour,

    J'ai besoin d'aide pour un projet C++ concernant... un bête d'include qui me pose problème avec un objet non reconnu.

    Je dispose du fichier "dart.hh" dans lequel est définie la class CDart, classe totalement opérationnelle et utilisée ailleure.

    J'ai créé un fichier GraphGrammar.hh (et le .cc associé évidemment) qui contient entre autre :
    struct Rule {
    int numRule;
    int numberOfUses;
    CDart antecedent;
    CDart successeur;
    };
    Ce qui me génère la très belle erreur : "graphGrammar.hh:12:2: erreur: ‘CDart’ does not name a type" ce qui me frustre assez car j'ai bien pris la peine de rajouter en début de fichier " #include "dart.hh" "

    Je suis convaincu que l'erreur est triviale mais... je bloque totalement dessus. Si quelqu'un pouvait m'aider, ce serait appréciable et apprécié !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Ca ne serait pas juste un problème de références croisées ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Merci pour cette réponse rapide, mais je ne pense pas que cela soit en cause.

    En effet, si j'utilise un objet de type CDart dans graphGrammar.hh (et que donc j'ai besoin dedans du fichier dart.hh) ce n'est absolument pas le cas dans le sens inverse. Le fichier dart.hh ne fait en aucun cas appel à un attribut ou argument de graphGrammar.hh

    Je me rend compte que je n'ai peut être pas indiqué assez de code pour faire comprendre mon problème.

    Fichier dart.hh :
    #ifndef DART_HH
    #define DART_HH
    //******************************************************************************
    #include <bitset>
    #include <ostream>
    #include "inline-macro.hh"
    #include "kernel-types.hh"
    //******************************************************************************

    namespace Map2d
    {
    class CDart
    {
    public: [CONTENU];
    private: [CONTENU];
    }
    }
    #endif
    Fichier graphGrammar.hh :
    #ifndef GRAPHGRAMMAR_H
    #define GRAPHGRAMMAR_H
    #include <iostream>
    #include <vector>
    #include <string>
    #include "dart.hh"

    struct Rule {
    int numRule;
    int numberOfUses;
    CDart antecedent;
    CDart successeur;
    };

    //Classe utilisant notamment la structure "Rule"
    class GraphGrammar
    {
    public: [CONTENU];

    private: [CONTENU];

    };
    #endif

  4. #4
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map2d::CDart antecedent;
    ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    EDIT : Merci, problème résolut, j'avais simplement oublié d'ajouter "using namespace Map2d;" au début...
    Encore désolé pour le temps perdu à chercher la solution de ce problème pour l'assisté que je suis

  6. #6
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Il ne faut pas faire de using namespace dans les fichiers d'entête.

    Extrait de la FAQ C++ - Les namespaces (tout est expliqué dedans, pourquoi et comment régler le souci)
    Il est conseillé de limiter l'utilisation de using namespace car cela fait tout simplement perdre l'utilité des namespaces. En particulier, son usage est à proscrire dans les fichiers d'en-tête, ainsi que dans les cas où il génère des conflits avec d'autres namespaces
    Tu as bien fait de poster au final

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

Discussions similaires

  1. Objet non reconnu
    Par allibaba dans le forum Doctrine2
    Réponses: 1
    Dernier message: 18/04/2013, 13h18
  2. Objet non reconnu dans include
    Par FotoXe33 dans le forum Langage
    Réponses: 4
    Dernier message: 21/12/2010, 17h14
  3. [POO] Objet non reconnu en tant que tel
    Par T`lash dans le forum Langage
    Réponses: 6
    Dernier message: 08/09/2008, 20h12
  4. L'objet server non reconnu
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/12/2007, 11h22
  5. [POO] balise ou objet non reconnu lors d'un deploiement serveur
    Par benssj5 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 17h26

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