【发布时间】:2020-06-23 21:59:05
【问题描述】:
我编写程序只是为了检查如果我们在类的析构函数中删除这个指针会发生什么。这是我的代码
class xxx{
public: xxx(){cout<<"constructor called"<<endl;}
~xxx(){cout<<"destructor called"<<endl;delete(this);} //deleting the 'this' pointer
};
int main(int argc, char *argv[])
{
xxx *x1=new xxx();
delete x1;
return 0;
}
当我运行这个程序时,它会导致无限循环打印“被调用的析构函数”。
delete 操作符和析构函数有什么关系?当你在析构函数中使用delete this 时会发生什么?
【问题讨论】:
-
这里还有问题吗?
标签: c++