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

Visual C++ Discussion :

Pb avec les #ifndef


Sujet :

Visual C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut Pb avec les #ifndef
    Bonjour,

    Je suis en train de m'embrouiller avec des #ifndef
    Mon inputOutput.cpp compile avec le code suivant
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    // InputOutput.h: interface for the CInputOutput class.
    //////////////////////////////////////////////////////////////////////
    //#ifndef Date_h
    //#define Date_h
    #include "CDate.h"
    //#endif
    mais pas avec celui-la
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    // InputOutput.h: interface for the CInputOutput class.
    //////////////////////////////////////////////////////////////////////
    #ifndef Date_h
    #define Date_h
    #include "CDate.h"
    #endif
    Alors que le 2eme normalement est mieux, non???

    Merci

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    G�n�ralement, on met juste les gardes d'inclusion � l'int�rieur d'un fichier d'en-t�te, pas � l'ext�rieur...

    Si �a ne compile pas dans le second cas, il est possible que Date_h soit utilis� dans le fichier d'en-t�te...
    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.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut
    juste qques pr�cisons les gardes d'inclusion sont les #ifndef et #define
    c ca ?

    pour toi a l'ext�rieur=.cpp??

    et le second cas
    mon .h utilse mon CDate.h donc je comprends pas trop en fait
    d�sol�

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut
    exemple
    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
     
     
    #ifndef CThirty360_h
    #define CThirty360_h
     
    #ifndef CDayCounter_h
    #define CDayCounter_h
    #include "CDayCounter.h"
    #endif
     
     
    class CThirty360 : public CDayCounter  
    {
    public:
    	CThirty360();
    	virtual ~CThirty360();
    	double yearFraction(CDate &d1, CDate &d2);
    	};
     
    #endif
    et mon .cpp

    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
     
    // CThirty360.cpp: implementation of the CThirty360 class.
    //
    //////////////////////////////////////////////////////////////////////
     
    #include "CThirty360.h"
     
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
     
    CThirty360::CThirty360():CDayCounter("30360")
    {
    //	m_dayCountType = "30360";
    }
    et j'ai les erreurs suivantes

    Compiling...
    CThirty360.cpp
    c:\my_models\dll_pricing_v2.0\headers\cdaycounter.h(22) : error C2629: unexpected 'class CDayCounter ('
    c:\my_models\dll_pricing_v2.0\headers\cdaycounter.h(22) : error C2238: unexpected token(s) preceding ';'

    mon CDayCounter est bien inclus???

    merci

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Citation Envoy� par mamok
    juste qques pr�cisons les gardes d'inclusion sont les #ifndef et #define
    c ca ?
    Oui.

    pour toi a l'ext�rieur=.cpp??
    Oui. Et � l'int�rieur = � l'int�rieur du .h gard�.

    Dans ton dernier exemple, le #ifndef CThirty360_h est au bon endroit, mais le #ifndef CDayCounter_h n'a rien � faire ici : Il devrait �tre dans CDayCounter.h et pas ailleurs.
    Edit: Si tu l'as mis dans les deux, c'est normal que �a foire.

    De plus, l'accolade fermante de ta classe CThirty360 est mal plac�e : Elle devrait �tre sur le m�me niveau d'indentation que l'accolade ouvrante.
    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.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut
    ok donc pour r�sumer

    dans tous les .h, il faut mettre

    #ifndef NOM.H_H
    #define
    corps du .h

    #endif

    et dans les .cpp #include "headers.h"

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    C'est �a.
    Et dans les .h qui incluent d'autres .h, on entoure le fichier lui-m�me de gardes, mais pas ses inclusions.
    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.

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut
    super merci
    c'est clair maintenant

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. probleme avec les processus
    Par saidi dans le forum Autres �diteurs
    R�ponses: 1
    Dernier message: 05/02/2003, 00h18
  2. Pb avec les menus
    Par Ph. B. dans le forum XMLRAD
    R�ponses: 6
    Dernier message: 29/01/2003, 11h57
  3. []Probl�me avec les formulaires Outlook
    Par Invit� dans le forum Outlook
    R�ponses: 6
    Dernier message: 05/12/2002, 09h59
  4. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    R�ponses: 4
    Dernier message: 29/11/2002, 10h18
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    R�ponses: 2
    Dernier message: 19/08/2002, 11h08

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