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 :

[DEBUTANT] Question de syntaxe en Français


Sujet :

C++

  1. #1
    Membre averti Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Points : 331
    Points
    331
    Par défaut [DEBUTANT] Question de syntaxe en Français
    Du point de vue d'expert en C++.

    J'ai quelque souci avec la terminologie si quelqu'un peut éclairer ma lanterne :

    Que veut dire la phrase suivante :

    La place habituelle pour définir une donnée membre static de la classe Fred est dans le fichier Fred.cpp
    par rapport à
    La place habituelle pour initialiser une donnée membre static de la classe Fred est dans le fichier Fred.cpp
    Quelle difference avec
    "Declarer" une variable et "definir" une variable.

  2. #2
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    définir = lui donner un type (ex : float)
    initialiser : lui donner une valeur (ex : (p = 2

    C'est pas du tout pareil !

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    définir = lui donner un type (ex : float)
    initialiser : lui donner une valeur (ex : (p = 2) )
    Pas vraiment non.
    Déclarer, c'est indiquer au compilateur qu'un symbole de tel type existe et sera défini ailleurs.
    Définir, c'est "créer" ce symbole (lui donner une définition, quoi).
    Quant à initialiser, pour moi c'est lorsqu'on place une variable dans un état connu.

    Quelqu'un qui connaît la norme pourra sans doute donner des définitions plus précises. En attendant, quelques exemples parleront peut-être plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern int x; // Déclaration
    int x; // Définition
    x = 5; // Initialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class C
    {
        static int x; // Déclaration
    };
    int C::x; // Définition
    C::x = 5; // Initialisation
     
    // Ou...
     
    int C::x = 5; // Définition + Initialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void F(int); // Déclaration
    void F(int x) // Définition
    {
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class C; // Déclaration
    class C // Définition
    {
    };

  4. #4
    Membre averti Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Points : 331
    Points
    331
    Par défaut
    Ok, merci
    C'est déja plus clair
    surtout pour declarer et définir.

    Je vais mettre resolu

    et entre les 2 phrases laquelle est correcte alors puisque declarer et initialiser c est pas pas pareil:
    La place habituelle pour définir une donnée membre static de la classe Fred est dans le fichier Fred.cpp
    par rapport à
    La place habituelle pour initialiser une donnée membre static de la classe Fred est dans le fichier Fred.cpp

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    et entre les 2 phrases laquelle est correcte alors puisque declarer et initialiser c est pas pas pareil
    Le truc important c'est la définition. Après, l'initialisation ce n'est qu'une affectation.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par Laurent Gomila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern int x; // Déclaration
    int x; // Définition
    x = 5; // Initialisation
    Pour chipoter...

    Ici, x=5 est une affectation, pas vraiment une initialisation.

    int x = 5; est une définition associée à une initialisation, alors que int x; est une définition sans initialisation, et MaClasse c; est une définition avec une initialisation (par le constructeur par défaut de MaClasse).

    La compréhension déclaration/définition est très importante, en particulier pour savoir quoi mettre dans un .h et un .cpp.

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

Discussions similaires

  1. Debutant - Question de syntaxe "::" seuls devant u
    Par Caille dans le forum Débuter
    Réponses: 3
    Dernier message: 08/02/2006, 15h59
  2. [debutant]Question toute bete sur le messages
    Par flogreg dans le forum Servlets/JSP
    Réponses: 18
    Dernier message: 09/09/2004, 09h07
  3. [debutant] Questions a propos du XML
    Par brune dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 04/06/2004, 09h39
  4. [C linux makefile] question de syntaxe
    Par Ultros dans le forum Systèmes de compilation
    Réponses: 7
    Dernier message: 09/04/2004, 07h58
  5. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49

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