Помогите разобраться
От: -newbie-  
Дата: 19.08.03 07:51
Оценка: :)
При вызове "aaa.NewX(77)" (см. ниже) для temp деструктор почему-то вызывается дважды в результате программа выдаёт ошибку когда пытается второй раз удалить *X.
Может кто подскажет как написать это правильно. (компилировалось на MS VC++ v7)

class A
{
public:
A() { X = new int; }
~A(){ delete X; }
A NewA(int a);
int *X;
};

A A::NewA(int a)
{
A temp;
*(temp.X) = a;
return temp;
}

main()
{
A aaa;
aaa.NewA(77);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.