title: How to call 'call by value ' and 'call by reference' overloaded function?
body: <p>I have two overloaded functions, one "call by value" and the other "call by reference".</p>
  
  <pre><code>int f (int a)
  {
      //code
  }
  
  int f (int &amp;a)
  {
      //code
  }
  </code></pre>
  
  <p>But if I pass <code>const int</code>, it calls the "pass by value" function, why?</p>
  
  <pre><code>const int a=3;
  f(a);//calls the call by value function.Why?
  </code></pre>