姬長信(Redy)

c – 指向子类的指针上的delete是否调用基…


我有一个A类,它为其中一个字段使用堆内存分配. A类被实例化并存储为另一个类(B类)中的指针字段.

当我完成了B类的一个对象时,我调用了delete,我假设它调用了析构函数……但这是否也调用了类A的析构函数?

编辑:

从答案中,我接受了(请编辑,如果不正确):

>删除B调用B ::?B()的实例;
>调用A :: ~A();
> A ::?A应该显式删除A对象的所有堆分配的成员变量;
>最后,存储所述类B实例的内存块返回到堆中 – 当使用new时,它首先在堆上分配一块内存,然后调用构造函数来初始化它,现在在调用所有析构函数以完成对象之后对象所在的块返回到堆中.