首页 > 解决方案 > 在 C++ 中使用虚拟析构函数

问题描述

虚和纯虚析构函数在 C++ 中的应用是什么?在什么情况下我必须使用虚拟析构函数而不是普通析构函数?

标签: c++oopconstructorvirtualdestructor

解决方案


当指向基类对象的指针被删除时,编译器会根据指针所指的对象的实际类型调用相应的析构函数。

如果基类析构函数不是虚函数,当基类指向派生类对象的指针被删除时,编译器会自动调用基类的析构函数,而不考虑实际对象是否是基类的对象。这个可能导致内存泄漏。


推荐阅读