虚函数是实现多态的基础,我们可以使用基类指针指向派生类对象,如果没有将基类定义为虚函数,则在释放该对象时,仅仅会调用基类的析构函数,而不会调用派生类的析构函数,导致析构不完全而产生内存泄漏。
将基类析构函数定义为虚函数,并在派生类中重写了该析构函数,当我们使用基类指针指向派生类对象,释放该内存时,则会先调用派生类析构函数,再调用基类的析构函数,从而完成对该对象内存的完全释放。
虚函数是实现多态的基础,我们可以使用基类指针指向派生类对象,如果没有将基类定义为虚函数,则在释放该对象时,仅仅会调用基类的析构函数,而不会调用派生类的析构函数,导致析构不完全而产生内存泄漏。
将基类析构函数定义为虚函数,并在派生类中重写了该析构函数,当我们使用基类指针指向派生类对象,释放该内存时,则会先调用派生类析构函数,再调用基类的析构函数,从而完成对该对象内存的完全释放。