在析构函数中delete this指针,会产生什么样的结果呢?
先看看下面这段代码,想想运行结果。
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"A()"<<endl;
}
~A()
{
cout<<"~A()"<<endl;
delete this;
}
};
int main()
{
A a;
return 0;
}</span>
这段代码会循环。为什么呢?
首先,了解一下this指针:
当一个对象声明时,系统会为这个对象分配一块内存空间,this指针指向这块内存空间,这块空间里面存着对象的数据成员和虚函数表指针。