指针指向的对象析构以后还能获取对象

C++语言 码拜 8年前 (2017-04-12) 886次浏览
class B
{
public:
B(int y){ x = y; };
void Func(void)
{
cout << “Func of class B” << endl;
}
int x;
};
int main()
{
B *p = NULL;
if (p==NULL)
{
B b(5);
p = &b;
}
p->Func();
cout << p->x << endl;
return 0;
}
b已经析构了,为什么p->还输出了5.
新手,见笑了,望指点
解决方案

5

那块内存还存在,没有被写

10

这是未定义行为,可能那片内存还未被其他数据覆盖,你可以在调用其他函数后再次输出一下,可能就是其他值了

20

析构了不代表内存被改写或清零

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明指针指向的对象析构以后还能获取对象
喜欢 (0)
[1034331897@qq.com]
分享 (0)