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 :

Déclaration / Définition


Sujet :

C++

  1. #1
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut Déclaration / Définition
    Bonjour,

    Je suis en train, à titre personnel, de résoudre les exercices du livre "le langage c++ (Bjarne Stroustrup)".


    J'ai une question à propos de cet exercice :
    Citation Envoyé par le langage c++
    Pour chaque déclaration du $ 4.9 : si la déclaration n'est pas une définition, écrivez la définition correspondante. Si la déclaration est une définition, écrivez une déclaration qui ne soit pas également une définition.
    Pour la plupart des def/decl ça ne pose pas de problème, mais je sèche sur ces définition (de types de constantes et d'espaces de noms) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef complex<short> Point;
    enum Beer {Carlsberg, Tuborg, Thor};
    namespace NS { int a; }
    Ces définitions ont elles des déclaration associées?


    par exemple :
    struct User{ };
    => Définition de type.
    => Déclaration = struct User; .

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Je ne comprends pas trop ta question.
    Dans l'énoncé du problème, il est dit pour chaque déclaration et dans ta question du parles de chaque définition. Tu n'inverserais pas déclaration et définition ?

    Sinon, je dirais

    enum Beer {Carlsberg, Tuborg, Thor}; déclare le type Beer.

    typedef complex<short> Point; déclare le type Point comme ça j'aurais dit définit le type Point (typedef = type + definition).

    namespace NS { int a; } déclare la variable a dans le namespace NS et on la définit par NS::a = 0;

    Euh...

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Voici ce qu'on peut lire pour la syntaxe de typedef

    typedef <définition du type de donnée> <identificateur> ;

    http://www.allprog.com/CPlusPlus/Typedef.htm

    Donc typedef complex<short> Point; définirait complex<short> et déclarerait le type Point ?

  4. #4
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    En tout cas pour enum on peut tout à fait la déclarer sans la définir sous VS :

    Par contre sous XCode je crois que ça ne passait pas la compilation.

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par MatRem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef complex<short> Point;
    enum Beer {Carlsberg, Tuborg, Thor};
    namespace NS { int a; }
    Ces définitions ont elles des déclaration associées?
    Pour Point et Beer, non.

    Pour NS::a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    namespace NS { extern int a; }

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par NiamorH
    En tout cas pour enum on peut tout à fait la déclarer sans la définir sous VS :

    Par contre sous XCode je crois que ça ne passait pas la compilation.
    Si VS accepte ca, c'est une extension.

  7. #7
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    ok, je me doutais que ce n'etait pas très standard

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    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 393
    Par défaut
    Il me semble que VS 2005 ne l'accepte plus, justement (ou au moins donne un warning).
    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.

  9. #9
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Pour Point et Beer, non.
    Ok c'est bien que qui me semblait merci.
    Pour la dernière j'avais pas fait gaffe à a, je regardais juste la définition d'espace de nom .

    > aoyou :
    En fait l'énoncé demande de regarder ce qui est déclaration et ce qui définition et dans donné l'autre forme ...
    Et celles que je donne sont bien des définitions, non des déclarations.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/11/2011, 22h25
  2. Méthode template : déclaration/définition et appel ?
    Par kidpaddle2 dans le forum Langage
    Réponses: 3
    Dernier message: 22/04/2007, 14h09
  3. Réponses: 1
    Dernier message: 23/09/2006, 00h41
  4. Séparer la définition et la déclaration d'une classe
    Par prgasp77 dans le forum Langage
    Réponses: 5
    Dernier message: 24/08/2005, 21h37
  5. Déclaration et définition dans un .cpp
    Par SteelBox dans le forum C++
    Réponses: 15
    Dernier message: 26/06/2005, 21h39

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