title: Why are class member functions inlined?
body: <p>I think my question has been asked here before, I did read them but still little confused and therefore asking to make it clear.</p>
  
  <p><code>The C++ standard says all member functions defined inside class definition are inline</code></p>
  
  <p>I have also heard that compiler can ignore inlining of a function. Will that be true in the above case or it will be always inlined if defined inside class definition? </p>
  
  <p>Also, what was the reason behind this design, making all functions defined inside class definition inline? And what inlining has to do with source and header files? </p>
  
  <p><strong>Update:</strong> So one should always define their functions outside class if not to be inlined, right?</p>
  
  <p><strike><strong>Update 2 by JohnB:</strong>  Two functions declared inside class definition could never call each other as they would have to each contain the whole body of the other function. What will happen in this case?</strike> (Already answered by Emilio Garavaglia)</p>