При вызове "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;
}