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 :

Cumul de surcharges d'opérateurs


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Cumul de surcharges d'opérateurs
    Bonjour à tous,

    Je viens de passer du C au C++ par nécessité pour utiliser la surcharge d'opérateur. Je me suis donc plongé dans les class et pense encore ne pas tout maitriser loin de là.
    Dans mon programme, je fais une première surcharge du + pour gérer l'addition d'intervalles mathématiques. Après je veux surcharger le + pour l'addition de matrice d'intervalles.
    Je suis alors tout a fait d'accord avec mon compilateur qui me dit que ma fonction operator+ ne diffère dans les deux cas que du type de retour. Le problème c'est que ça me fait une erreur
    Et là je suis bloqué.

    Merci par avance de vos indications.
    A bientôt.

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    Tu ne peux pas avoir les meme types d'arguments et un type de retour différent dans une surcharge de fonction.

    Tu peux :
    1 - ajouter des arguments inutilisés en paramtre de ta fonction pour différencier les 2 fonctions (bien sur, dans le cas de surcharge d'opérateur ça marche moins bien )

    2 - créer des types différents pour pour les parametres
    Par exemple : au lieu d'avoir int f(int) et double f(int)
    tu peux faire une classe enveloppante de int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Integer
    {
    public :
     int nb;
    };
    et ainsi avoir 2 fonctions int f(int) et double f(Integer)

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Dans mon programme, je fais une première surcharge du + pour gérer l'addition d'intervalles mathématiques. Après je veux surcharger le + pour l'addition de matrice d'intervalles.
    Ici tu as bien deux types différents, pourquoi ton compilo te dit le contraire ? Sous quelle forme as-tu représenté ces types dans ton programme ?

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

Discussions similaires

  1. [C#] Tri d'objet et surcharge d'opérateur
    Par Royd938 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 17/12/2007, 00h26
  2. [C#] Est-il possible de surcharger l'opérateur = ?
    Par backseatgreg dans le forum C#
    Réponses: 11
    Dernier message: 28/11/2005, 16h18
  3. Petit probléme de surcharge d'opérateur .
    Par Clad3 dans le forum C++
    Réponses: 20
    Dernier message: 11/04/2005, 20h15
  4. Problème de surcharge d'opérateurs
    Par Hell dans le forum C++
    Réponses: 17
    Dernier message: 17/01/2005, 16h01
  5. [VB .NET] Surcharge d'opérateur
    Par Franckintosh dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/09/2004, 19h05

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