Salut,<br><br>Incerc sa scriu o clasa "mine" 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 <iostream><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 & operator=(const mine & x)<br>    {<br>    //cout << "assign" << endl;<br>    u = x.u;<br>    }<br><br><br>};<br><br>mine& operator+(const mine & x, const mine &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<10; i++)<br>    {<br>    e = a + b + c + d;<br>    <br>    }<br>
<br>    cout << count << "\n"; // afiseaza 35 desi ar trebui sa fie 5<br><br>    return 0;<br>}<br><br>