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éclarer une variable


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut déclarer une variable
    Bonjour !
    J'ai une question à vous poser :
    J'ai vu qu'en C++ il y a deux manières de déclarer une variable : Type Nom (valeur); et Type Nom = Valeur; quelle est la différence y en a t'il une mieux que l'autre ?

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    En fait il n'y a pas de différence, la déclaration de la variable en elle-même est "Type Nom" et rien d'autre.
    Par contre, ce qu'on passe entre parenthèses ou après le signe égal ça permet de faire une initialisation, qui est une notion différente de la déclaration.

    En pratique, il n'y a pas de grande différence entre utiliser des parenthèses et le signe égal. Les deux sont des initialisations. L'avantage des parenthèses est qu'on peut passer plus d'un argument au constructeur. Le désavantage c'est ce genre de choses :
    MaClasse monObjet();
    qui, pour un lecteur humain, est une déclaration (et initialisation) de monObjet de type MaClasse, alors que pour le compilo c'est une déclaration de fonction. (C'est pourquoi dans ce cas on va préférer MaClasse monObjet; )

    Il faut aussi noter que l'initialisation avec le signe "=" est différente de l'affectation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Type nom(); // déclaration de la fonction nom qui renvoie un Type
    Type nom; // appel de Type::Type()
    Type nom = Type(2); // appel de Type::Type(int) puis Type::Type(Type&&) --> optimisé par le compilo
    Type nom(2); // appel de Type::Type(int)
    Type nom = 2; // appel de Type::Type(int)
    nom = 3; // appel de Type::operator= (int), affectation
    Y'a quelques détails tricky à part ça mais rien de bien intéressant.

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci beaucoup de ta réponse !

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

Discussions similaires

  1. Déclarer une variable pour remplacer cout
    Par alvun dans le forum SL & STL
    Réponses: 11
    Dernier message: 29/06/2006, 10h29
  2. Comment déclarer une variable binaire?
    Par Pragmateek dans le forum C++
    Réponses: 12
    Dernier message: 22/03/2006, 17h35
  3. Déclarer une variable globale
    Par OverLorD34 dans le forum MFC
    Réponses: 8
    Dernier message: 18/03/2006, 10h46
  4. [Variable] Déclarer une variable avec un nom dynamique
    Par jacquesh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/02/2006, 14h11
  5. Réponses: 5
    Dernier message: 20/09/2005, 22h48

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