Why use dereferencing when function takes arguments in C++ : <pre><code>#include &lt;iostream&gt;
using namespace std;

class Dummy {
  public:
    bool isitme (Dummy&amp; param);
};

bool Dummy::isitme (Dummy&amp; param)
{
  if (&amp;param == this) return true;
  else return false;
}

int main () {
  Dummy a;
  Dummy* b = &amp;a;
  if ( b-&gt;isitme(a) )
    cout &lt;&lt; "yes, &amp;a is b\n";
  return 0;
}
</code></pre>

<p>I was looking at this C++ example and I don't understand why  <code>bool isitme (Dummy&amp; param);</code> uses the dereferencing sign '&amp;'. The argument is an Dummy object itself right, why it is the object's address?</p>
