源码

首页 » 归档 » 源码 » c – 指向子类的指针上的delete是否调用基…

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


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

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

编辑:

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

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

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/c-zhixiangzileidezhizhenshangdedeleteshifoudiaoyongji.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 18, 2019 at 01:57 上午

热评文章