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 :

redéfinition de l'opérateur ==


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 84
    Par défaut redéfinition de l'opérateur ==
    Bonjour tout le monde, j'aimerai savoir si l'un de vous pouvez me donner la syntaxe pour redefinir l'operateur ==. J'ai cherché sur internet sans sucess, on trouve souvent l'operateur d'affectation mais j'ai rien trouver pour l'operateur ==
    Un petit coup de main serrait le bienvenu

  2. #2
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    Par exemple :
    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
    class exemple
    {
      private:
         int x;
         int y;
         int z;
     
      public:
        exemple();  //constructeur
     
        bool operator ==(exemple &e)
       {
          return ((e.x == x) && (e.y == y) && (e.z == z) );
       }
     
    };
    En gros, tu compares toutes les propriétés des 2 objets à comparer !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 84
    Par défaut
    merci bcp

    j'avais fait un truc du genre

    bool operator ==(const CC_Section& sec)
    {
    bool reponse = true;
    for(int i = 0;i<30;i++)
    {
    if(nom[i] != sec.nom[i]) reponse = false;
    }
    if(form_code != sec.form_code) reponse = false;
    if(sym_code != sec.sym_code) reponse = false;
    if(curve_code != sec.curve_code) reponse = false;
    if(erreur != sec.erreur) reponse = false;
    if( x != sec.x) reponse = false;
    for(int i = 0;i<2;i++)
    {
    if(nint[i] != sec.nint[i]) reponse = false;
    if(nsc[i] != sec.nsc[i]) reponse = false;
    if(sc[i].Egale(sec.sc[i])) reponse = false;
    if(pi[i].Egale(sec.pi[i])) reponse = false;
    }
    if(c != sec.c) reponse = false;
    if(s = sec.s) reponse = false;
    if(mty != sec.mty) reponse = false;
    if(mtz != sec.mtz) reponse = false;
    if(per != sec.per) reponse = false;
    if(lf != sec.lf) reponse = false;
    if(mtyf != sec.mtyf) reponse = false;
    if(iy != sec.iy) reponse = false;
    if(ymin != sec.ymin) reponse = false;
    if(zmin != sec.zmin) reponse = false;
    if(ymax != sec.ymax) reponse = false;
    if(zmax != sec.zmax) reponse = false;
    return reponse;
    }

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut

    Ca peut marcher sans problème...

  5. #5
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int operator==(const Type& truc) const {
      return this->machin == truc.machin;
    }

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ou mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool operator==(const MaClasse& lhs, const MaClasse& rhs)
    {
     /// faire qqch
      return true;
    }
    Pourquoi mieux à mon sens ? Ce n'est pas la peine que cet opérateur soit une fonction membre de la classe mère.

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    P*t**n de SESE. "&&" et "return" sont tes amis. Ainsi que les balises code qui supporteront l'indentation.

    Sinon,
    Citation Envoyé par Miles
    Ou mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool operator==(const MaClasse& lhs, const MaClasse& rhs)
    {
     /// faire qqch
      return true;
    }
    Pourquoi mieux à mon sens ? Ce n'est pas la peine que cet opérateur soit une fonction membre de la classe mère.
    De plus, c'est la seule écriture qui supporte les convertions implicites de manière symétrique.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Flux & redéfinition de l'opérateur <<
    Par oodini dans le forum Langage
    Réponses: 8
    Dernier message: 02/05/2013, 23h58
  2. Redéfinition de l'opérateur new
    Par Khan34 dans le forum C++
    Réponses: 15
    Dernier message: 05/07/2012, 16h27
  3. Problème redéfinition de l'opérateur []
    Par scary dans le forum Débuter
    Réponses: 2
    Dernier message: 05/03/2010, 11h00
  4. redéfinition des opérateurs en C++
    Par apan dans le forum C++
    Réponses: 11
    Dernier message: 27/03/2006, 15h58
  5. Redéfinition / Surdéfinition d'opérateur
    Par slate dans le forum C++
    Réponses: 12
    Dernier message: 17/02/2006, 02h17

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