title: c++ overloaded ==operator wants one AND two arguments
body: <p>I'm trying to overload the == operator in a project I'm doing. the declaration and definitions are:</p>
  
  <pre><code>friend bool operator==(const TradeItem&amp; item);
  
  bool TradeItem::operator==(const TradeItem&amp; item)
  </code></pre>
  
  <p>when i compile this it says: 'bool operator==(const TradeItem&amp;)' must take exactly two arguments. So i rework it to have two arguments like this:</p>
  
  <pre><code>friend bool operator==(const TradeItem&amp; i1, TradeItem&amp; i2);
  
  bool TradeItem::operator==(const TradeItem&amp; i1, TradeItem&amp; i2)
  </code></pre>
  
  <p>but when i compile this it tells me it takes exactly one argument.... talk about giving me the runaround. anyone know whats going wrong?</p>