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 :

Erreur de compilation "classe introuvable"


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Points : 115
    Points
    115
    Par défaut Erreur de compilation "classe introuvable"
    Slt, j'ai plusieurs classes, dont une que voila :

    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
     
    #ifndef CFICHIER_H_
    #define CFICHIER_H_
     
    #include "Types.h"
    #include "CException.h"
    #include "CInode.h"
     
    namespace Projet_SVFS
    {
    	class CFichier
    	{
    	  protected :
    		// Flags d'ouverture du fichier
    		int m_Flags;
    	  public :
    		// ...
     
    		CInode* m_Inode;
     
    		AdrBloc_t m_AdrBlocNom;
     
     
    		// ...
    	};// CFichier
    }// namepsace Projet_SVFS
     
    #include "CFichier.hxx"
     
    #endif /* CFICHIER_H_ */

    et CInode :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    #ifndef CINODE_H_
     
    #define CINODE_H_
     
     
     
    #include <string>
     
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>
     
     
    #include "Types.h"
     
    #include "CException.h"
    #include "Constantes.h"
     
     
     
     
     
    namespace Projet_SVFS
     
    {
     
    	class CInode
    	{
     
    	  protected:
     
    		AdrBloc_t m_Adr;
     
    		Sentinelle_Bloc_t m_type;
     
    		mode_t m_mode;
     
    		uid_t m_uid;
     
    		gid_t m_gid;
     
    		long int m_size;
     
    		int m_NbLiens;
     
    		time_t m_mtime;
     
    		time_t m_atime;
     
    		time_t m_ctime;
    		AdrBloc_t m_Donnees[NbAdrInode];
     
     
    		int m_FdD;
    		int m_FdFifoIn;
    		int m_FdFifoOut;
    		int m_FdFifoPere;
     
    	  public:
     
     
    		CInode (uid_t uid, gid_t gid, Sentinelle_Bloc_t Type, int FdD,
    				int FdFifoIn, int FdFifoOut, int FdFifoPere);
     
    		CInode (AdrBloc_t Adr, int FdD, int FdFifoIn, int FdFifoOut,
    				int FdFifoPere);
     
     
    		//...
     
    	};// CInode
     
     
     
    } //Projet_SVFS
     
     
     
    #include "CInode.hxx"
     
     
     
    #endif /* CINODE_H_ */


    Enfin bref, classique! Hors, quand je compile, il me compile parfaitement CInode mais pour CFichier voici l'erreur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    In file included from ../include/CTabDescFic.h:23,
                     from ../include/CFilsServeur.h:17,
                     from CBlocAdr.cxx:20:
    ../include/CFichier.h:42: erreur: ISO C++ forbids declaration of ‘CInode’ with no type
    ../include/CFichier.h:42: erreur: expected ‘;’ before ‘*’ token
    ar: CBlocAdr.o: No such file or directory
    make[1]: *** [CBlocAdr.o] Erreur 1
    make[1]: quittant le répertoire « /home/barbug/Bureau/sources/util »
    make: *** [cible] Erreur 2


    Quelqu'un aurait-il une idée d'où cela pourrait venir ? Sachant que CInode.h est bien inclus... Et que j'ai essayé de renommer les fichiers, les classes, etc... au cas où un caractère invalide se soit inséré !

    Merci d'avance !

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Il faut faire une forward declaration (cf la faq)

    avant ta classe Cfichier :

    class CInode

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Points : 115
    Points
    115
    Par défaut
    Effectivement, ça marche !

    Merci beaucoup !

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

Discussions similaires

  1. [Erreur à la compil] Classe non déclarée ?
    Par ipingu dans le forum C++
    Réponses: 9
    Dernier message: 23/03/2008, 18h27
  2. Réponses: 6
    Dernier message: 04/01/2007, 16h34
  3. [VB6] erreur de compilation:Méthode ou membre de données introuvable
    Par fouf_01 dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 07/06/2006, 16h34

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