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 compilation MSVC2005


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Erreur compilation MSVC2005
    Salut,

    j'ai un petit souci de compilation que je n'arrive pas à résoudre.
    Je travaille sous Visual Studio 2005 et programme en C++.

    Voila la situation :

    J'ai 2 fichiers : fichier1.cpp et fichier2.cpp dont voici le contenu nettoyé :


    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
     
    //fichier1.cpp :
     
    class Sesam_Cfg
    {
    	//Constructeurs
    	...
     
    	//Destructeurs
    	...
     
    	//etc...
     
     
    };
     
    Sesam_Cfg * global_cfg;
     
    void main(void)//fonction principale pour tester ma classe
    {
     
    	global_cfg = new Sesam_Cfg();
     
    }
     
    //Une fonction pour obtenir la référence à un objet Sesam_Cfg
    Sesam_Cfg * Get_SesamCfg_Info()
    {
    return global_cfg;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //fichier2.cpp :
     
    class Sesam_Cfg;//Forward déclaration
    extern Sesam_Cfg * Get_SesamCfg_Info();
     
    ...
     
    //Dans une méthode d'une classe
    Sesam_Cfg * truc = Get_Sesam_Cfg();
     
    truc->Get_StrCfg_Info(section,"Old_LN_TM");
     
    ...
    Je joins une impression d'écran pour les erreurs.

    Je ne comprends pas pourquoi le compilo m'indique que j'utilise un type non défini.
    Images attachées Images attachées  

  2. #2
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Points : 158
    Points
    158
    Par défaut
    ce serait peut être un peu plus propre de déclarer ta classe dans un hpp et de l'inclure dans l'autre fichier.

  3. #3
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    bonjour,

    ben ton fichier2 ne connait pas ton fichier1, faire un export ne suffit pas.

    => Obligation de déclarer ta classe dans un ".h"
    (c'est pas sémentiquement obligatoire, mais c'est juste sale, pas bien et tout le reste de le faire dans le cpp)

    et tu inclus ton.h dans tes 2 cpp.
    "vaste programme"

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il faut la déclaration complète de la classe pour utiliser ses membres.
    Si tu n'as déclaré que son nom et pas son contenu, tu pourras manipuler des pointeurs ou des références, mais tu ne pourras pas les "utiliser".

    PS: On voit là à quel point la traduction française de Visual est nulle, car le terme anglais n'est pas "type indéfini", mais "type incomplet", un terme très spécifique.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. RXControl RxRichEdit ERREUR Compilation
    Par loleske dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/02/2005, 18h12
  2. [FreePascal] Erreur compilation ou défaut Dev-Pascal ?
    Par molesqualeux dans le forum Free Pascal
    Réponses: 5
    Dernier message: 27/12/2004, 10h00
  3. [Débutant]Erreur compilation !
    Par gandalf_le_blanc dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 30/08/2004, 14h23
  4. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 16h45
  5. Erreur compilation DX8.1 VC++ 6
    Par d.vidal dans le forum DirectX
    Réponses: 1
    Dernier message: 10/09/2003, 09h04

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