<br><br><div class="gmail_quote">On Sat, Mar 6, 2010 at 5:52 PM, Dan-George Filimon <span dir="ltr"><<a href="mailto:dangeorge.filimon@gmail.com">dangeorge.filimon@gmail.com</a>></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& mine::operator+(const mine &x) {<br>
mine *helper = new mine(max(x.n, this->n));<br>
helper->n = max(x.n, this->n);<br>
int i;<br>
for (i = 0; i < min(x.n, this->n); ++ i)<br>
helper->A[i] = this->A[i] + x.A[i];<br>
for (; i < helper->n; ++ i)<br>
if (i >= x.n)<br>
helper->A[i] = this->A[i];<br>
else<br>
helper->A[i] = x.A[i];<br>
//helper->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 &x) {<br> this->A = new int[x.n];<br> this->n = x.n;<br> memcpy(this->A, x.A, x.n * sizeof(int));<br>}<br clear="all"></div></div><br><br><br>-- <br>Andrada Georgescu<br>