c++中,如果我用new创建了一个对象指针,然后强制把该对象指针转为为基类的指针,则使用delete删除时,能正确删除吗?
问题描述:
c++中,如果我用new创建了一个对象指针,然后强制把该对象指针转为为基类的指针,则使用delete删除时,能正确删除吗?
答
可以正确删除的。析构函数是虚函数。多态性会正常执行子类的析构处理
答
可以删除,但是内存不一定能全部释放掉
答
经过测试,如果基类定义了虚析构函数,而子类也定义了析构函数,则delete时,先执行子类的析构函数,然后再执行基类的析构函数。