例如,假设你有:
Class Test
{
public:
Test();
private:
int x = 0;
int y = 3;
}
使用
之类的东西声明Test的实例Test * RRR = new Test();
让我们说出你输入的某个地方
delete RRR;
这是否也会删除x和y占用的内存?
答案 0 :(得分:1)
简短回答是肯定的,但严格来说,x和y不是已删除。他们释放的内存将被释放,因为它们是结构的数据成员。
即使你没有定义析构函数,编译器也会为你合成一个默认的析构函数,它将释放struct所占用的内存。