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 :

que fait ce code !


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par d�faut que fait ce code !
    salut.
    j'arrive pas a comprendre ce que fait ce code
    ca me parait comme un appel du constructeur de la classe int() !!?
    mais je pense qu'en C++ int n'est pas une classe ?
    ca marche meme si je fais par exemple

    et il ya encore la valeur 10 dans a !
    je ne vois pas vraiment un sens

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    le type int est un type primitif, et, � ce titre, on ne peut donc effectivement pas le consid�rer comme �tant une "classe" (ni n'importe quel autre type d�fini par l'utilisateur tel que structure, union, �num�ration ou d�finition de type)...

    Cependant, pour des raisons d'homog�n�it� et de coh�rence de codage, le C++ fournit des "pseudo constructeurs" pour les type primitifs.

    Ces "pseudo constructeurs" r�agissent exactement de la mani�re dont on s'attend � ce qu'il r�agissent g�n�ralement: en initialisant la valeur du type primitif (cela pourrait tout aussi bien se faire avec un char, un short, un long... )

    Le code fait donc exactement ce que tu subodore: il demande l'allocation dynamique pour un entier, et s'arrange pour que cet entier soit initialis� � 10

    Cependant, je suis surpris que la version avec deux valeurs
    accepte ne fusse que de compiler...

    Chez moi (sous windows XP, en utilisant code::blocks et Gcc), j'obtiens une toute belle erreur
    ||=== forumcpp, Debug ===|
    D:\projects\forumcpp\main.cpp||In function 'int main()': |
    D:\projects\forumcpp\main.cpp|7|erreur: new initializer liste d'expressions trait�e comme une expression compos�e|
    D:\projects\forumcpp\main.cpp|7|attention : left-hand operand of comma n'a pas d'effet|
    D:\projects\forumcpp\main.cpp|7|attention : unused variable 'i'|
    ||=== Build finished: 3 errors, 0 warnings ===|
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par d�faut
    Salut,

    � mon avis guitariste voulait plut�t dire:

    En fait, vu que la conversion float->int existe, il n'y a pas de probl�mes.

  4. #4
    Membre �clair� Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par d�faut
    salut .
    et ben je vous assure que c'est pas une faute !

    ce code compile chez moi:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "stdafx.h"
    #include <iostream>
     
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
     
    	int *a =new int(10,7);
    	char i;
    	cout<< *(a) << endl;
    	cin>> i;
    	return 0;
    }
    et j'obtient un beau "7" comme resulat (et non pas 10 comme j'ai d�j� dit )

    os: xp
    ide :visual studio express 2008

  5. #5
    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 : 51
    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
    Par d�faut
    L'op�ratuer ',' existe. Il �value ses deux arguments, et retourne l'�l�ment de droite.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int a = 12, 15, 42; // ici, a vaut 42.
    L� o� je l'ai vu le plus utilis�, c'est dans des boucles :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for (int i=0 ; it != v.end() ; ++i, ++it)
    Maintenant, dans ce contexte, la virgule ne devrait pas �tre interpr�t�e comme l'op�ratuer ',', mais comme un s�parateur d'arguments, donc je pense que ce code ne devrait pas compiler.
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  6. #6
    Membre �clair� Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par d�faut
    Citation Envoy� par JolyLoic
    Maintenant, dans ce contexte, la virgule ne devrait pas �tre interpr�t�e comme l'op�ratuer ',', mais comme un s�parateur d'arguments, donc je pense que ce code ne devrait pas compiler.
    de quel code tu parles ?

  7. #7
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 539
    Par d�faut
    Je crois qu'il y a erreur
    Citation Envoy� par guitariste Voir le message
    salut.
    j'arrive pas a comprendre ce que fait ce code
    ce code, le compilateur affecte un pointeur de type integer une allocation d'une valeur de type integer mais � la diff�rence pr�s qu'un transtypage ( cast en anglais ) est effectu�
    Donc logiquement tu n'alloues qu'une seule variable de type integer de valeur 10 et non un tableau de 10 variables...
    int(..) sera consid�r� comme un cast par le compilateur...
    int() par exemple est souvent utilis� pour transtyper des r�els ou variables � virgules flottantes ou bien pour calculer la partie enti�re...

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

Discussions similaires

  1. Fonction myst�re - Que fait ce code ?
    Par jeyGey dans le forum C
    R�ponses: 2
    Dernier message: 16/01/2013, 13h43
  2. Que fait ce code ?
    Par vieuxmonsieur dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 19/09/2012, 13h17
  3. Que fait ce code ?
    Par teol91 dans le forum x86 32-bits / 64-bits
    R�ponses: 9
    Dernier message: 24/10/2011, 10h38
  4. que fait ce code
    Par improcess dans le forum Images
    R�ponses: 4
    Dernier message: 02/10/2011, 14h39
  5. que fait ce code (et surtout pourquoi??)
    Par elekis dans le forum C++
    R�ponses: 3
    Dernier message: 13/09/2005, 10h47

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