bool point::operator==(point const& m1, point const& m2)
Tes arguments sont const. Hors ta fonction get_mx() et get_my() ne sont pas déclarés comme const. Tu ne peux pas appelé des arguments pas const dans une fonction const. (Il me semble que c'est ça)
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
bool point::operator==(point const& m1, point const& m2)
Tes arguments sont const. Hors ta fonction get_mx() et get_my() ne sont pas déclarés comme const. Tu ne peux pas appelé des arguments pas const dans une fonction const. (Il me semble que c'est ça)
Ceci déclare une opération à 3 paramètres. Il faut virer le premier "point::".
La définition idéale, c'est friend (pour des histoire de résolution de noms) et libre (pour des histoires de symétrie).
PS: mais pourquoi des setters ? Crois-tu vraiment en avoir besoin quand tu as déjà un constructeur à paramètres ? PPS: pas besoin de "if(expr) return true else return false" quand "return expr" suffit!
bool operator==(point const& m1, point const& m2) ;
ni la définition dans ton ".cc".
Dans ta classe, tu as le prototype suivant :
bool operator==(point const& m1) ;
qui est le prototype d'une surcharge de l'opérator == binaire par méthode ( ex: a==b .... binaire car tu as un paramètre (a) représenté par ton this, et un autre paramètre (b) qui est point const& m1).
Si tu souhaites surcharger ton opérateur par fonction, ta fonction n'ayant pas de this, il y aura donc deux paramètres dans le prototype (a et b). Le prototype sera donc :
friend bool operator==(point const& m1, point const& m2) ;
Friend -> lmghs vient de te donner la raison principale.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tes arguments sont const. Hors ta fonction get_mx() et get_my() ne sont pas déclarés comme const. Tu ne peux pas appelé des arguments pas const dans une fonction const. (Il me semble que c'est ça)
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C