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 :

Surcharger l'opérateur ^


Sujet :

C++

  1. #1
    Invité4
    Invité(e)
    Par défaut Surcharger l'opérateur ^
    Bonjour,

    pour un projet, je code une classe Matrix, dont voici le prototype :
    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
    #define MapFunction double (*f)(double)
     
    class Matrix
    {
        public:
        Matrix(void);
        Matrix(Matrix& cpy);
        Matrix(double array[3][3]);
     
        uint getFromArray(uint x, uint y);
        void normalize(void);
        void map(MapFunction);
     
        bool operator==(Matrix& m2) const;
        friend Matrix operator^(int p, Matrix& m);
        Matrix operator*(Matrix& m2) const;
        string operator<<(Matrix& m) const;
        double& operator[](const int index);
     
        protected:
        double prob[3][3];
    };
    J'ai des problèmes avec la surcharge de l'opérateur ^.

    Si je fais
    ,

    le compilateur gcc me dit
    C:\Users\current_user\Documents\EPFL\Bachelor 2\Projet C++\AntSimulator\tests\TestMatrix.cpp|22|error: no match for 'operator^' in 'm3 ^ 2'|
    Savez-vous quel est le problème ?

    Merci.
    Salutations.
    Dernière modification par pottiez ; 03/10/2011 à 19h55. Motif: Retrait du nom à la demande de l'auteur

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ton code déclare ::operator^(int, Matrix&), mais appelle ::operator^(Matrix&, int).

    De plus, ça manque de const.
    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.

  3. #3
    Invité4
    Invité(e)
    Par défaut
    oups, ok.

    merci bien

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. Petit probléme de surcharge d'opérateur .
    Par Clad3 dans le forum C++
    Réponses: 20
    Dernier message: 11/04/2005, 20h15
  3. Problème de surcharge d'opérateurs
    Par Hell dans le forum C++
    Réponses: 17
    Dernier message: 17/01/2005, 16h01
  4. Cumul de surcharges d'opérateurs
    Par Nats dans le forum C++
    Réponses: 2
    Dernier message: 11/10/2004, 13h37
  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