Salut,<br><br>Incerc sa scriu o clasa &quot;mine&quot; in C++ care sa permita operatorul +.<br>Problema este ca fiecare obiect aloca dinamic un array, iar o operatie de genul x =a +b+c ar cauza memory leak-uri.<br><br>Cum s-ar putea face asta?<br>
<br>Mai jos este codul. Mentin un contor al constructorilor/destructorilor, si se vede evident ca se obtin memory leakuri.<br><br>Mersi,<br>Marius<br><br>/*************************CODE*********************/<br><br>#include &lt;iostream&gt;<br>
<br>int count = 0;<br>using namespace std;<br><br>struct mine<br>{<br>    int * u;<br>    mine()<br>    {<br>    u = new int[10000];<br>    count++;<br>    }<br><br>    ~mine()<br>    {<br>    delete[] u;<br>    count--;<br>
    }<br><br>    mine &amp; operator=(const mine &amp; x)<br>    {<br>    //cout &lt;&lt; &quot;assign&quot; &lt;&lt; endl;<br>    u = x.u;<br>    }<br><br><br>};<br><br>mine&amp; operator+(const mine &amp; x, const mine &amp;y)<br>
{<br>    mine * ret = new mine;<br>    return *ret;<br>}<br><br>int main()<br>{<br><br>    mine a, b, c, d;<br>    mine e;<br><br><br>    for (int i = 0; i&lt;10; i++)<br>    {<br>    e = a + b + c + d;<br>    <br>    }<br>
<br>    cout &lt;&lt; count &lt;&lt; &quot;\n&quot;; // afiseaza 35 desi ar trebui sa fie 5<br><br>    return 0;<br>}<br><br>