title: Different arguments in declaration and definition of the overloaded operators
body: <p>Declaration inside the class:<br>
  <code>Integer operator+ (const Integer&amp; right);</code></p>
  
  <p>Definition outside the class:  </p>
  
  <pre><code>Integer operator+ (const Integer&amp; left, const Integer&amp; right)
  {
      return left ;
  }
  </code></pre>
  
  <p>What sense does it make for the compiler to enforce different number arguments in declaration and definition?</p>