什么都不做的虚拟析构函数是
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
,而使用{}
则不会。