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++/CLI Discussion :

Probl�me d'affichage (c++)


Sujet :

C++/CLI

  1. #1
    Membre �clair� Avatar de chercheur111
    Profil pro
    �tudiant
    Inscrit en
    Juillet 2010
    Messages
    352
    D�tails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 352
    Par d�faut Probl�me d'affichage (c++)
    Bonjour,

    Mon code est le suivant:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #include <iostream>
    using namespace std;
     
    class Souris
    {
     
       public: double poids;
       public: string couleur;
       public: unsigned int age;
       public: unsigned int esperancevie;
       public: bool clonee;
       Souris(double p,string c,unsigned int a, unsigned int esperancevie=36){
    	   poids=p;
    	   couleur=c;
    	   age=a;
    	   clonee=false;
    	   esperancevie=36;
    	   cout<<"Une nouvelle souris avec esperancevie "<<esperancevie<<endl;
       }
     
       public: void afficher(){
    	   cout<< "esperance dans afficher "<<esperancevie<<endl;
       }
     
       };
    int main()
    {
      Souris s1(50.0, "blanche", 2);
      s1.afficher();
     
      return 0;
    }
    J'ai eu:

    Ma question est la suivante: pourquoi j'ai eu deux valeurs diff�rentes pour esperancedevie ?

    Avez-vous une id�e ?
    Merci d'avance.
    Images attach�es Images attach�es  

  2. #2
    Membre �clair� Avatar de chercheur111
    Profil pro
    �tudiant
    Inscrit en
    Juillet 2010
    Messages
    352
    D�tails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 352
    Par d�faut
    J'ai chang�:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     Souris(double p,string c,unsigned int a, unsigned int esperancevie=36)
    par:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     Souris(double p,string c,unsigned int a, unsigned int esperancevie1=36){
    Et �a marche

    Merci.

  3. #3
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par d�faut
    Alors d�j� plusieurs chose:
    Le mot clef public n'est pas obligatoire pour chaque d�claration, une seule fois suffit:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    public:
    void mafunc();
    voi mafunc2();
    private:
    int toto;
    int titi;
    int tutu;
    Dans ce cas, les deux fonctions sont public et les trois int sont private. En voyant ton code, je devine que tu viens du monde java ^^. En c++ on fait les choses un peu diff�remment (certes �a reviens au meme, mais c'est plus joulis).

    Ensuite es-tu sur que ton code compile?

    Dans ton constructeur, ta variable d'entr�e esperancedevie poss�de le meme nom que ton attribut. Quand tu modifie esperancedevie dans ton constructeur, en fait tu modifies ta variable d'entr� et non pas ton attribut.

    Une bonne pratique en c++ est de pr�fixer tes attribut:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Maclasse {
    public:
      Maclasse(int val1, int val2) {
        m_val1 = val1;
        m_val2 = val2;
      }
    private:
      int m_val1;
      int m_val2;
    };
    Ainsi tu �vites ce genre de soucis. En conclusion, essaye de regarder les bonne pratiques c++:
    _ visibilit� des attributs
    _ nommage des variables
    _ d�claration dans le header, code dans un cpp.
    _ compilation avec -Wall (affichage de tout les warning) -Werror (arret de la compilation lorsqu'un warning est affich�).

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Tu peux utiliser les listes d'initialisation, qui �vitent ce probl�me quand les noms sont identiques:
    Code C++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     #include <iostream>
    using namespace std;
     
    class Souris
    {
     
    	public: double poids;
    	public: string couleur;
    	public: unsigned int age;
    	public: unsigned int esperancevie;
    	public: bool clonee;
     
    	Souris(double p,string c,unsigned int a, unsigned int esperancevie=36)
    	: poids(p), couleur(c), age(a), esperancevie(esperancevie), clonee(false) {
    		cout << "Une nouvelle souris avec esperancevie " << esperancevie << endl;
    	}
     
    	public: void afficher(){
    		cout<< "esperance dans afficher " << esperancevie << endl;
    	}
    };
     
    int main()
    {
    	Souris s1(50.0, "blanche", 2);
    	s1.afficher();
     
    	return 0;
    }

    PS: Ce n'est pas du C++/CLI, c'est du C++ normal. Tu postes dans la mauvaise section du forum.
    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.

  5. #5
    Membre �clair� Avatar de chercheur111
    Profil pro
    �tudiant
    Inscrit en
    Juillet 2010
    Messages
    352
    D�tails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 352
    Par d�faut
    Merci beaucoup pour vos r�ponses

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

Discussions similaires

  1. Probl�me d'affichage
    Par mustang-gx dans le forum Bases de donn�es
    R�ponses: 8
    Dernier message: 26/01/2005, 22h54
  2. Probl�me d'affichage avec trace
    Par WriteLN dans le forum Flash
    R�ponses: 10
    Dernier message: 22/10/2003, 16h59
  3. [Kylix] probl�me d'affichage
    Par scalvi dans le forum EDI
    R�ponses: 1
    Dernier message: 18/06/2003, 10h07
  4. R�ponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probl�me d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    R�ponses: 7
    Dernier message: 29/08/2002, 09h43

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