今天遇到一个问题,C++中的引用变量,如果引用被析构,原数据是否会存在,例如 int a = 5; int& b = a; delete &b; a是否能被访问到,博主写了个测试程序。
经测试,数据已经通过析构函数被释放不能,相当于数据空间已经被回收,望大家注意。
附上测试代码和测试的流程图:
#include <cstdio>
#include <iostream>
using namespace std;
class A
{
public :
A():a(5)
{
}
~A()
{
a = 0;
}
int getA()
{
return a;
}
private:
int a = 0;
};
int main()
{
A* b = new A();
A& b1 = *b;
A& b2 = *b;
delete &b1;
cout << b2.getA() << endl;
return 0;
}