Je this post, je l'ai vu:Un opérateur == dont les paramètres sont des références non-const
class MonitorObjectString: public MonitorObject {
// some other declarations
friend inline bool operator==(/*const*/ MonitorObjectString& lhs,
/*const*/ MonitorObjectString& rhs)
{ return lhs.fVal==rhs.fVal; }
}
Avant de pouvoir continuer, CECI EST TRÈS IMPORTANT:
- Je suis ne remettant pas en question la capacité de tout le monde à coder.
- Je suis juste en me demandant pourquoi quelqu'un aurait besoin de références non const dans une comparaison.
- L'affiche de that questionn'a pas écrire ce code.
C'était juste au cas où. Ceci est également important:
- J'ai ajouté à la fois
/*const*/
s et reformaté le code.
Maintenant, nous revenons au sujet:
Je ne peux pas penser à une utilisation saine de l'opérateur d'égalité qui vous permet de modifier ses arguments par-ref. Le faites vous?
Ou les membres de la classe qui peuvent changer pourraient être déclarés comme 'mutables'. – pyon
@Eduardo, C++? Pourriez-vous élaborer un peu s'il vous plaît? – strager
Je n'ai jamais vu de code dans d'autres langues qui se soucie de savoir si vos objets sont constants. La seule autre langue que je connais qui se soucie de cela est C, mais elle ne permet pas la surcharge de l'opérateur. – pyon