通过基类的指针来删除派生类的对象时,基类的析构函数应该是虚的。否则其删除效果将无法实现。
一般情况下,这样的删除只能够删除基类对象,而不能删除子类对象,形成了删除一半形象,从而千万内存泄漏。请看以下代码:
下面再看一下不是析构函数的虚拟函数,这种函数设置为虚拟的目的是让基类提供一种方法,在子类中
能够按照各自的需要来覆盖该方法,从而达到多态的目的。看下面的代码:
通过基类的指针来删除派生类的对象时,基类的析构函数应该是虚的。否则其删除效果将无法实现。
一般情况下,这样的删除只能够删除基类对象,而不能删除子类对象,形成了删除一半形象,从而千万内存泄漏。请看以下代码:
下面再看一下不是析构函数的虚拟函数,这种函数设置为虚拟的目的是让基类提供一种方法,在子类中
能够按照各自的需要来覆盖该方法,从而达到多态的目的。看下面的代码: