virtual虚析构函数不会造成内存的重复释放吗?
int main() {
//Soldier soldier;
Person *p = new Soldier;
p->play();
delete p;
p = NULL;
system("pause");
return 0;
}Person
Soldier
Person -- play
James
~Soldier
~Person
从堆中分配一块内存创建Soldier的对象,
执行Soldier的析构函数~Soldier之后就释放掉了该内存,
那么在执行Person的虚构函数~Person不会造成内存的重复释放呢?
为什么呢?