Hi Leute,

was ist denn nun der konrekte Unterschied zwischen dem Copy-Konstruktor und dem  Zuweisungsoperator? Ich hab hier einen Quelltext vor mir liegen bei dem beide im Grunde dasselbe machen:

//Copy-Konstruktor

Test::Test (const Test  &a) : size(a.size), p(new int[size]) {

  for (int i = 0; i  p[i] = a.p[i];
}
}

//Zuweisungsoperator

 

Test &Test ::operator=(const Test  &a) {

if (this != &a) {
 for (int i = 0; i  p[i] = a.p[i];
}
}

return *this;
}

Beide übergeben ja dem neuen Objekt das alte Array ( p[ ] ), also kopieren es oder weisen es neu zu...wo ist der Unterschied?