C++::一道有趣的面试题(关于delete)
2016-12-17 20:09
281 查看
一位学长去面试遇到了这样一道题:
**我们来好好看一遍代码,分析下程序:
1)注意:delete可以释放任何指针
2)当我们释放对象的时候,调用析构函数,delete掉对象,但是这时候delete的是this,this又会调用自己的析构函数,又进入delete,如此往复,程序崩溃
#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,如此往复,程序崩溃
相关文章推荐
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 百度的一道面试题(关于Cache的)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 一道关于C++派生类初始化的笔试题
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 关于封装--一个有趣的C++例子
- 一个关于c++字符串处理和delete[]与delete差别的问题
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 一道有趣的题,关于C#的多态
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 关于一道微软面试题的解答
- 关于一道微软面试题的思考
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 关于一道面试题
- 关于一道sql的面试题 (非常精典)
- C++中的内存管理——关于new和delete的讨论
- 一道关于宏的面试题及解答
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 关于FOR循环的一道面试题