您的位置:首页 > 编程语言 > C语言/C++

C++::一道有趣的面试题(关于delete)

2016-12-17 20:09 281 查看
一位学长去面试遇到了这样一道题:

#include<iostream>
using namespace std;
class Test
{
public:
Test()
{}
~Test()
{
delete this;
}
};
int main()
{
Test a;
return 0;
}
**大家来说下程序的运行结果是什么?乍一看没问题啊,实则不然,程序崩溃!!!

**我们来好好看一遍代码,分析下程序:

1)注意:delete可以释放任何指针

2)当我们释放对象的时候,调用析构函数,delete掉对象,但是这时候delete的是this,this又会调用自己的析构函数,又进入delete,如此往复,程序崩溃
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: