Why should I use const T& instead of const T or T&
<p>I always use <code>const T&amp;</code> to pass a class to a function. Like this:</p>

<pre><code>void foo(const MyType&amp; p)
{
  //...
}
</code></pre>

<p>But now I'm confused, why not pass a <code>const T</code> or a <code>T&amp;</code> to a function?</p>

<p>By the way, for built-in types, like <code>int</code>, <code>long long</code>, <code>double</code>, why <code>const T</code> is better than <code>const T&amp;</code> <del>(I remember I've read in <em>Effective C++</em>)</del></p>

<p>Thanks for answering my questions.</p>
