嗨朋友,如果发生分段错误,我在程序执行期间有一个查询,可以调用自动创建的对象的析构函数。我正在编写一个代码并故意创建分段错误来检查析构函数是否会被调用。
#include<iostream>
using namespace std;
class hello
{
public:
int b;
};
class test
{
public :
hello *ptr;
int a;
void function()
{
ptr = new hello;
}
test()
{
cout<<"constructor called"<<endl;
}
~test()
{
cout<<"destructor called"<<endl;
delete ptr;
}
};
int main()
{
test obj;
obj.function();
obj.a = 500;
test *ptr ;
ptr-> a = 900; //To create segmentation fault
}
输出:构造函数调用
没有调用析构函数。所以我无法删除在析构函数中使用“new”创建的任何对象