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 :

double[] et accolade


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 116
    Points : 62
    Points
    62
    Par défaut double[] et accolade
    Bonjour,

    Une question (bête) me parcourt l'esprit.

    Pourquoi on ne peut pas redéfinir un tableau de double avec les accolades une fois qu'il a été initialisé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double point[3]={0., 0. ,0.};
    point={1. ,1. ,1.};//error à la compile
    Je serais intéressé, par curiosité, d'en connaitre la raison.

    Merci par avance

  2. #2
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Je ne pense pas dire de bêtise en disant que

    double point[3]={0., 0. ,0.};
    point={1. ,1. ,1.};//error à la compile


    quand tu utilises point[3] (à la déclaration+initialisation), il s'agit bien d'un tableau de double (ce n'est possible qu'à la déclaration).

    par contre, si on prend la ligne
    point représente un pointeur sur double (un double*). Il n'est pas possible de stocker un tuple (je ne connais pas le terme technique exacte de l'écriture {1., 1., 1.}) dans un pointeur (void*)

  3. #3
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 042
    Points : 2 232
    Points
    2 232
    Par défaut
    C'est tout simplement car l'utilisation de liste d'initialisation n'est permise que à la déclaration en C++ mais pas en C

    J'ai cru voir quelque part que ça serais possible avec C++0x mais j'ai pas vraiment de certitude la dessus

    Edit: Et encore en C je ne suis pas sur
    Homer J. Simpson


  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Ok tout simplement.
    Merci

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Edit: Et encore en C je ne suis pas sur
    En C ça n'est pas permis non plus.

  6. #6
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    En C++0x cette syntaxue sera généralisé à n'importe quel type, voir Initializer List.

    Pour une array je ne suis pas sur que ce soit pourtant possible de faire une assignation tel que proposé dans le premier message, mais pour un objet ça me parait possible (a vérifier quand on aura des compilo rodés pour les nouvelles features...)

  7. #7
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    @Klaim: Pour les tableau ca marche avec GCC. Et je pense que c'est correct en C++1x (mais 'jarrive pas à trouver les passages du draft qui vont dans ce sens : utilisation de la list d'initialisation pour une affectation).

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2008, 11h50
  2. division de "double" par "0"
    Par ickis dans le forum C
    Réponses: 14
    Dernier message: 31/08/2003, 20h09
  3. abs pour un long double
    Par barthelv dans le forum C
    Réponses: 2
    Dernier message: 23/07/2003, 17h16
  4. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 21h22
  5. Réponses: 3
    Dernier message: 12/06/2002, 22h15

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