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 :

comparer 2 valeur


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut comparer 2 valeur
    Bonjour tt le monde;
    j'ai fait un petit programme qui fait la comparaison entre 2 valeurs, s'ils sont égaux il retourne 1 sinon il retourne 0; voila le prog :

    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
    #include <iostream>
    using namespace std;
    class Valeur{
          public:
                 int x,y;
                 Valeur(int v1=0):x(v1){}
                 int egale(Valeur V);
    };
    int main(){
        Valeur a,b;
        a=1;
        b=1;
        a.egale(b);
        system("pause");
    }
    int Valeur::egale(Valeur V){
        if(x == V.x){
             return 1;
        }else {
              return 0;      
        }
    }
    lorsque je compile mon programme, il me retourne rien !!
    SVP de m'aider à corriger l'erreur .

  2. #2
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    faudrait voir a afficher quelque chose :E

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Heu, tu as déjà de la chance que cela compile, grâce au fait que ton constructeur agisse comme un opérateur de conversion, car, dans bien des cas, a = 1 te posera quelques problèmes (a est de type Valeur, et dispose de deux entiers, alors que 1 est associé à... un (et un seul) entier )

    Ceci dit, egal renvoie bel et bien quelque chose... Simplement, le programme n'est pas prévu pour te le faire savoir: si tu lui demandais, tout simplement d'afficher le résultat, tu verrais qu'il effectue bel et bien la fonction egal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int main()
    {
     
        Valeur a(1);
        Valeur b(1);
        Valeur c(2); //pour voir une différence :D
     
        cout<<"a egal b :"<<a.egale(b)<<endl
            <<"a egal c :"<<a.egale(c);
        system("pause");
    }
    Ceci étant réglé, je me permet quelques remarques générales:
    1. L'instruction system a l'énorme inconvénient de ne pas être portable, car elle va faire appel à des applications présentes sur le système... Et pause n'existe pas sous linux par exemple ... tu peux te reporter à cette entrée de la faq pour savoir comment faire une pause portable
    2. Je sais que le langage autorise la déclaration de plusieurs variables sur une seule ligne en les séparant par des virgules, mais je ne suis pas partisan de ce genre de pratique: il devient trop facile de "louper" la déclaration de l'une d'elles, et on peut se méprendre sur ce qui est fait lorsque l'un est un pointeur
    3. tu crées un constructeur pour ta structure, pourquoi ne pas l'utiliser (cf mon code) L'idéal est de toujours, pour autant que faire se peut, reporter la déclaration de la variable jusqu'à ce que tu sois en mesure de l'initaliser directement (RAII inside).
    4. L'idéal est de transmettre les structures aux fonctions par références, constantes si la fonction ne doit pas modifier la variable obtenue par ce biais... Autrement, tu observe une copie de la variable transmise qui peut demander énormément de ressources, tant au point de vue de la mémoire que du point de vue du temps (bien que ce ne soit pas forcément le cas ici)
    5. Lorsque tu crées une fonction membre qui ne modifie pas l'objet courent, l'idéal est de déclarer cette fonction constante, de manière à prévenir le compilateur que la fonction s'engage à ne pas modifier l'objet courent... Cela n'a l'air de rien, mais seules les fonctions membres constantes peuvent être appelées au départ d'objets constants (bien qu'elles puissent, aussi, être appelées au départ d'objets non constants)... Cela participe à une meilleure sécurisation et porte le nom anglais de "const correctness"
    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

  4. #4
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut
    OK merci bcp

Discussions similaires

  1. Réponses: 17
    Dernier message: 31/12/2005, 21h32
  2. Comparer une valeur à plus ou moins quelque chose...?
    Par Thierry8 dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2005, 13h17
  3. comparer des valeurs
    Par nah_wah dans le forum Langage
    Réponses: 15
    Dernier message: 23/09/2005, 14h32
  4. comparer les valeurs d'un tableau
    Par nicerico dans le forum ASP
    Réponses: 4
    Dernier message: 19/08/2004, 11h20
  5. [RegEdit] comparer 2 valeurs
    Par Halleck dans le forum Windows
    Réponses: 2
    Dernier message: 15/03/2004, 21h51

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