在C ++中使用虚拟析构函数

问题描述 投票:0回答:1

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

c++ oop constructor virtual destructor
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.