【发布时间】:2014-02-02 23:06:21
【问题描述】:
在这种情况下:
class a1 {
public:
virtual ~a1(){}
int i;
};
class a2 : public a1 {
public:
int i2;
};
int main() {
a1* aa2 = new a2;
delete aa2;
}
如果我删除 aa2,那么分配在 a2 上的所有内存都将是空闲的?? 这些类内部没有任何动态分配的数据。
【问题讨论】:
-
是的,它将被完全删除。如果你在类中有任何动态分配的内存,你也必须删除它。
-
这肯定包含在您用来学习 C++ 的任何资源中。