c++中,如果我用new创建了一个对象指针,然后强制把该对象指针转为为基类的指针,则使用delete删除时,能正确删除吗?

c++中,如果我用new创建了一个对象指针,然后强制把该对象指针转为为基类的指针,则使用delete删除时,能正确删除吗?

问题描述:

c++中,如果我用new创建了一个对象指针,然后强制把该对象指针转为为基类的指针,则使用delete删除时,能正确删除吗?

可以正确删除的。析构函数是虚函数。多态性会正常执行子类的析构处理

可以删除,但是内存不一定能全部释放掉

经过测试,如果基类定义了虚析构函数,而子类也定义了析构函数,则delete时,先执行子类的析构函数,然后再执行基类的析构函数。