<br><br><div class="gmail_quote">On Sat, Mar 6, 2010 at 5:52 PM, Dan-George Filimon <span dir="ltr">&lt;<a href="mailto:dangeorge.filimon@gmail.com">dangeorge.filimon@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


const mine&amp; mine::operator+(const mine &amp;x) {<br>
        mine *helper = new mine(max(x.n, this-&gt;n));<br>
        helper-&gt;n = max(x.n, this-&gt;n);<br>
        int i;<br>
        for (i = 0; i &lt; min(x.n, this-&gt;n); ++ i)<br>
                helper-&gt;A[i] = this-&gt;A[i] + x.A[i];<br>
        for (; i &lt; helper-&gt;n; ++ i)<br>
                if (i &gt;= x.n)<br>
                        helper-&gt;A[i] = this-&gt;A[i];<br>
                else<br>
                        helper-&gt;A[i] = x.A[i];<br>
        //helper-&gt;print();<br>
        return *helper;<br>
}<br>
<br></blockquote><div><br>Nu ar trebui să aloci dinamic acolo un nou obiect, îți produce leak-uri (tu nu vei știi niciodată să eliberezi zona alocată <br>pentru obiect în sine). Trebuie, după cum spunea și Andrei să îțî definești și un copy-constructor, pe lângă assignment. <br>

De exemplu:<br><br>mine(const mine &amp;x) {<br>    this-&gt;A = new int[x.n];<br>    this-&gt;n = x.n;<br>    memcpy(this-&gt;A, x.A, x.n * sizeof(int));<br>}<br clear="all"></div></div><br><br><br>-- <br>Andrada Georgescu<br>