у Страуструпа читаем о перегрузке опирации +
class Vec; // Vec - имя класса
class vector {
friend Vec operator+(Vec, Vec);
//...
};
Vec operator+(Vec a, Vec b)
{
int s = a.size();
if (s != b.size()) error("плохой размер вектора для +");
Vec& sum = *new Vec(s);
int* sp = sum.v;
int* ap = a.v;
int* bp = b.v;
while (s--) *sp++ = *ap++ + *bp++;
return sum;
}
разве использование new в этом случае не приведёт к утечки памяти?
Vec a,b,s;
....
s = a + b;
....
я не вижу где в этом примере произойдёт удаление временного объекта. Может я что не так понимаю, подскажите где...