Why does overloaded assignment operator return reference to class?
<pre><code>class item {
public:
    item&amp; operator=(const item &amp;rh) {
        ...
        ...
        return *this;
    }
};
</code></pre>

<p>Is the following signature wrong?</p>

<pre><code>void operator=(const item &amp;rh);
</code></pre>

<p></p>

<pre><code>item a, b;
a = b; // equivalent to a.operator=(b); so there is no need to return this.
</code></pre>
