<分区>
我有一些非常有趣的代码片段。当我删除一个对象时,它的值变为零,但是对象指针仍然可以被操作,这是不是很奇怪?
#include <iostream>
#include <vector>
using namespace std;
class B
{
public:
vector<double> vec;
};
class A
{
public:
B b;
};
int main()
{
A* a = new A();
a->b.vec.push_back(1);
a->b.vec.push_back(2);
A* a1;
delete a;
cout << "before" << endl;
a1= a;
cout << a1->b.vec[0] << endl;
cout << "after" << endl;
return 0;
}
输出:
before
0
after
我删除a后,它的值变成了零,但它仍然可以被引用?不知道为什么?