Comparing Instances of Classes

DRex via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Mar 10 08:22:18 PST 2017


On Friday, 10 March 2017 at 16:13:21 UTC, Adam D. Ruppe wrote:
> On Friday, 10 March 2017 at 16:08:05 UTC, DRex wrote:
>> Am I missing something here?
>
> Yeah, you need to implement a custom equality operator.
>
> class A {
>    int member;
>    override bool opEquals(const A rhs) {
>         return this.member == rhs.member; // and other members 
> that need to be equal
>    }
> }
>
>
> The default opEquals sees if they are the same *instance* (same 
> as `a is b`), and does not look at contents. You need to define 
> that yourself.

I tried the above class A, and now the compiler fails with the 
following error:

Error: function app.A.opEquals does not override any function, 
did you mean to override 'object.Object.opEquals'?

My A class appears exactly as mentioned in your comment...


More information about the Digitalmars-d-learn mailing list