C++_的引用的析构,引用空间的释放
2015-10-29 21:36
274 查看
今天遇到一个问题,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;
}
经测试,数据已经通过析构函数被释放不能,相当于数据空间已经被回收,望大家注意。
附上测试代码和测试的流程图:
#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;
}
相关文章推荐
- [C++] const and char*
- ——黑马程序员——C语言中程序结构(二)
- c语言中认识指针
- 使用class或struct关键字定义类
- C语言第十二天:通讯录练习(C语言最后一天老师带我们做的Project)
- 《Essential C++》读书笔记
- Function语意学 Member的各种调用方式
- C++plus 4.13
- 1014--C语言文法定义
- 《C++ primer》英文第五版C++笔记(二)——主要的内置类型
- C中的volatile用法
- c语言的指针基础
- 使用友元,编译出错fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) 的解决
- 1到4组成不相同的3位数
- 1014 C语言文法定义与C程序的推导过程
- C++语言中的字符串和数组
- c语言的结构体,常量和编译一个可执行文件
- C++、C#、java算法学习日记03----插入排序
- 2014 CCF认证 相邻数对(C语言)
- 学习 C++类的多态