title: Why we use reference return in assignment operator overloading and not at plus-minus ops?
body: <p>As I read in books and in the web, in C++ we can overload the "plus" or "minus" operators with these prototypes (as member functions of a <code>class Money</code>):</p>
  
  <p><code>const Money operator +(const Money&amp; m2) const;</code></p>
  
  <p><code>const Money operator -(const Money&amp; m2) const;</code></p>
  
  <p>and for the assignment operator with:</p>
  
  <p><code>const Money&amp; operator =(const Money&amp; m2);</code></p>
  
  <p>Why use a reference to a Money object as a return value in the assignment operator overloading and not in the plus and minus operators?</p>