by reference in C++
<p>I have this snippet of the code </p>

<pre><code>Stack&amp; Stack:: operator=(const Stack&amp; stack){
   if(this == &amp;stack){
      return *this
   }
}
</code></pre>

<p>here I define operator <code>=</code> but I can't understand, if I receive by reference stack why it should be <code>&amp;</code> in <code>this == &amp;stack</code> and not <code>this == stack</code> and why we return <code>*</code> in <code>return *this</code> and not <code>this</code> thanks in advance for any help</p>
