虚拟析构函数的概念

时间:2013-12-10 08:01:05

标签: c++

我对虚拟析构函数感到困惑。我知道我们是否使用基类指针创建派生类的实例,如下所示

Base *p = new Derived;

但如果我们现在删除它

delete p;

为什么不能正确删除对象? p指向的是什么?我知道使基类析构函数虚拟会正确地杀死对象,但这个东西在概念上是如何工作的?它与堆有关吗?作为声明的结果

Base *p = new Derived;

堆栈中存储的内容以及堆上的内容是什么?通过简单地删除(使用非虚拟基础析构函数)为什么它不调用派生的析构函数。我在概念上感到困惑。

0 个答案:

没有答案