C++ uses references in many places
… that’s why we did this detour. Consider this
is conceptually the same as
obj2.operator= (const SomeObject &obj1);
obj2.operator= (const SomeObject &obj1);
obj2 (const &obj1); // “copy constructor”
obj3 = SomeObject.operator+ ( const &obj1, const &obj2);
End of detour - let’s now get back to our operators.
the compiler does this with a reference
If you want to deal with operators, you have to understand the object references.