title: Difference between << / >> operator overloading and Input/Output functions
body: <p>I would really appreciate if someone could explain to me the difference between overloading the input/output operators, for example: </p>
  
  <pre><code>friend ostream&amp; operator&lt;&lt;(ostream&amp; ost, const myClass&amp; obj) {
      return ost &lt;&lt; obj.x &lt;&lt; obj.y;
  }
  </code></pre>
  
  <p>and Output/Input functions like these: </p>
  
  <pre><code>void Output(ostream&amp; ost) {
      ost &lt;&lt; x &lt;&lt; y;
  }
  </code></pre>
  
  <p>What are they used for, examples etc. Everything is acceptable. Thanks!</p>