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++Builder Discussion :

Erreur d'Héritage : Nom de Type Attendu


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par défaut Erreur d'Héritage : Nom de Type Attendu
    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
     
    // CService.h
    #ifndef CServiceH
    #define CServiceH
     
    //class CGraph; ???
    class CFire: public CGraph    // l'ERREUR SE TROUVE ICI //
    {
    public:
            CFire(double m_P,double m_Q, double m_F, int PhisikType,int Aspect, int x1, int y1, int x2, int y2, AnsiString *BMP);
    private:
            double m_Price;
            double m_QuantityWater;
            double m_FireLessPercent; // Pourcentage de risque d'incendie en moins //
    };
    #endif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // CService.cpp
    #pragma hdrstop
     
     
    #include "CService.h"
    #include "CGraph.h"
     
    //---------------------------------------------------------------------------
     
    #pragma package(smart_init)
    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
     
    // CGraph.h
    #ifndef CGraphH
    #define CGraphH
    //---------------------------------------------------------------------------
    class CGraph
    {
    public:
            CGraph(int PhisikType,int Aspect, int x1, int y1, int x2, int y2, AnsiString *BMP);
            AnsiString *pBmp;
    private:
            int m_PhysiqType;
            int m_PhysiqAspect; 
            int m_x1;
            int m_y1;
            int m_x2;
            int m_y2;
            int m_GCX;  
            int m_GCY;
            int m_Rayon;    
    };
    #endif
    Voila, le problème survient au niveau de l'héritage de class CFire
    C++ Builder 6 trouve bien que la class CGraph provient du Header CGraph.h
    Est-ce vraiment une erreur physique banale? erreur au niveau la déclaration de CGraph?
    Merci de m'aider.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Par défaut
    Salut,

    d'aprés moi tu devrais inverser l'ordre des includes, à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // CService.cpp
    #pragma hdrstop
    
    
    #include "CGraph.h"
    #include "CService.h"
    
    //---------------------------------------------------------------------------
    
    #pragma package(smart_init)

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par défaut
    Cela ne marche pas non plus.
    Quelqu'un ayant déjà fait un programme avec une class de base separé d'une class dérivée devrait connaitre la reponse non?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Par défaut
    Je viens de reprendre exactement ton code et je reproduit la même erreur.
    En revanche une fois que j'inverse les 2 includes je compile, désolé je peux pas faire plus.

    Lorsque tu le fais as-tu le même message?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    A condition de persister à les charger uniquement dans le .cpp, il est clair qu'il faut inverser les include : quand B dépend de A, on ne commence pas par compiler B puis A.

    Mais, normalement (du moins à mon avis), tu devrais avoir
    dans ton "CService.h".

    Ainsi, dans un fichier désirant utiliser ta classe, tu n'auras qu'à mettre
    sans te préoccuper de "CGraph.h", sinon je te parie que tu l'oublieras de temps en temps, et tu te diras probablement "Bon sang, pourquoi est-ce que ça ne compile pas, d'habitude c'est bon".

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par défaut
    Ca m'a tout l'air de marcher.
    Conclusion : Faire Attention à l'ordre de déclaration des fichiers inclus...

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 08/03/2009, 14h37
  2. [Débutant - Excel - Graph] Erreur sur changement nom de série
    Par seiryujay dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2006, 10h12
  3. Erreur 06550 invalid number or types of parameter
    Par freestyler1982 dans le forum JDBC
    Réponses: 3
    Dernier message: 17/11/2006, 13h49
  4. Réponses: 6
    Dernier message: 21/07/2006, 15h48
  5. erreur trop peu de paramétre. un attendu ??
    Par Amandine62 dans le forum ASP
    Réponses: 3
    Dernier message: 25/01/2005, 15h00

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