受到帖子“为什么析构函数禁用隐式移动方法生成?”的启发,我想知道默认虚析构函数是否也是如此。
class WidgetBase // Base class of all widgets
{
public:
virtual ~WidgetBase() = default;
// ...
};
由于这个类旨在作为小部件层次结构的基类,我必须定义其析构函数为虚函数,以避免在使用基类指针时出现内存泄漏和未定义行为。另一方面,我不想阻止编译器自动生成移动操作。
默认虚析构函数会阻止编译器生成移动操作吗?