| xbastanu a întrebat:

De ce in programul acesta destructorul imi elibereaza memoria alocata inainte de afisarea elementelor din tabloul 3?

#include
using namespace std;

class Tablou {
float *t;

int dim_tablou;

public:

Tablou() {
dim_tablou = 256;

t = new float[dim_tablou];
}

Tablou(int dim) : dim_tablou(dim) {
t = new float[dim_tablou];
}

void setElement(float, int);

float getElement(int );

int getDimensiune();

Tablou operator+(Tablou &);

~Tablou(void);
};

void Tablou :: setElement(float elem, int poz) {
*(t + poz) = elem;
}

float Tablou :: getElement(int poz) {
return *(t + poz);
}

int Tablou :: getDimensiune() {
return dim_tablou;
}

Tablou Tablou :: operator+(Tablou &tab) {
Tablou p;

if (dim_tablou > tab.dim_tablou) {
p.dim_tablou = tab.dim_tablou;
p.t = new float[p. dim_tablou];

for (int i = 0; i < tab.dim_tablou; i++)
p.t[i] = t[i] + tab.t[i];
}
else {
p.dim_tablou = dim_tablou;
p.t = new float[p. dim_tablou];

for (int i = 0; i < dim_tablou; i++)
p.t[i] = t[i] + tab.t[i];
}

return p;
}

Tablou :: ~Tablou(void) {
cout n;

Tablou tab1(n);

cout > m;

Tablou tab2(m);

cout