title: Why is it recommended to declare functions as "friends" in operator overloading
body: <p>I have read this at many places which recommend of using "friend" while overload operators but no body explained it clearly as to why it is really needed? Why can not we declare them as plain member function? Any shortcoming?</p>
  
  <p>Googled this but did not get any clear answer.</p>