什么都不做的虚拟析构函数是

virtual ~ClassName() {}

从C++ 11 we can alternatively say开始:
virtual ~ClassName() = default;

两者之间有什么区别吗?

最佳答案

主要区别在于,存在默认功能的规则,这些规则指定了在何种情况下将其删除(请参阅ISO c++ 14(N4296)8.4、12.1、12.4、12.8)



例如。:



如果您的使用属于已删除的类别之一,则使用default将等效于使用delete,而使用{}则不会。

08-17 03:44