64,691
社区成员
发帖
与我相关
我的任务
分享
A *a1,*a2;
a1 = new A();
a2 = a1;
double result = a1->add(34.5,22.2);
printf("result before delete = %f\n",result);
delete a1;
printf("A.ad = %d\n",a1->ad);
result = 0;
result = a2->add(232,22.2);
printf("result after delete = %f\n",result);
class A
{
public:
A(){ad = 2;}
~A(){ad = 0;}
public:
int ad;
double add(double a,double b);
};
指针是指针,内存是内存,指针=NULL不会对内存产生一丁点的影星啊.
你释放的是内存,不是释放指针.
内存被释放了,就不要再去碰它了.
永远让指针记住尚未被释放的内存地址,否则就是内存泄露.
内存被释放了,就让指针也忘记那个内存地址吧(=NULL),留着也没有用.