【发布时间】:2021-12-31 18:20:50
【问题描述】:
我有一个没有析构函数和构造函数的类:
class Foo {
public:
Foo(int a) : p(new int(a)) {}
private:
int *p;
};
{
Foo a(4);
}
在这段代码之后,堆上分配的内存会被释放吗? 还是我必须显式提供这样的析构函数:
class Foo {
public:
Foo(int a) : p(new int(a)) {}
~Foo();
private:
int *p;
};
Foo::~Foo() {
delete p;
}
【问题讨论】:
标签: c++ heap-memory destructor dynamic-memory-allocation